наследование в документной базе данных?

Я задаюсь вопросом, потому что я искал PDF" [noSql] полное руководство" и "начинающийся [noSql]" для слова "наследование", но я ничего не нашел? я пропускаю что-то? потому что я делаю, tablePerHierarchy наследование с в спящем режиме и mysql, который становится устаревшим по некоторым причинам в [noSql]?

(замена [noSql] с "не только sql" база данных Вам нравится),

19
задан Community 22 September 2017 в 18:01
поделиться

1 ответ

Я знаю, что этот ответ немного запоздал, но для MongoDB вы, вероятно, смотрите на что-то немного другое.

Mongo не имеет схемы, поэтому концепция tablePerHierarchy не обязательно полезна.

Предположим следующее

class A
  property X
  property Y
  property Z

class B inherits from A
  property W

В RDMS у вас, вероятно, будет что-то вроде этого

table A: columns X, Y, Z
table B: columns X, Y, Z, W

Но MongoDB не имеет схемы. Таким образом, вам не нужно структурировать данные таким образом. Вместо этого у вас будет «коллекция», содержащая все объекты (или «документы») типа A или B (или C ...).

Итак, ваша коллекция будет представлять собой серию таких объектов:

{"_id":"1", "X":1, "Y":2, "Z":3}
{"_id":"2", "X":5, "Y":6, "Z":7, "W":6}

Вы заметите, что я храню объекты типа A рядом с объектами типа B. MongoDB упрощает эту задачу. Просто вытащите Документ из Коллекции, и он «волшебным образом» будет иметь все соответствующие поля / свойства.

Однако, если у вас есть «объекты данных» или «сущности», вы можете облегчить себе жизнь, добавив тип.

{"_id":"1", "type":"A", "X":1, "Y":2, "Z":3}
{"_id":"2", "type":"B", "X":5, "Y":6, "Z":7, "W":6}

Это упрощает написание фабричного класса для загрузки ваших объектов.

50
ответ дан 30 November 2019 в 02:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: