Проектирование БД для нескольких форм одного типа - PullRequest
0 голосов
/ 17 мая 2018

Каков наилучший подход к разработке таблиц БД для типа, который имеет несколько форм. Например, Животное, которое может быть любым животным со своими специфическими свойствами.

таблица для животных с общими столбцами и отдельными таблицами для каждого типа. Но как сохранить ссылки на внешние ключи в основной таблице животных? Мы не можем сохранить один ключ для каждого типа, если типы растут, ссылки также будут расти. А для одной строки существует только один тип, а все остальные ключи в таблице животных будут нулевыми.

Есть ли лучший способ конструировать таблицы, кроме этого? Например, рассмотрим таблицы ниже Мебельный стол:

Id    FurnituretypeId NoofLegs ChairId    TableId
-------------------------------------------------
int   int             int       int        int

Стул Стол:

Id    Name        CansSwing   CanDetachable          
-------------------------------------------------
int   Varchar(25) boolean      boolean

Детская кроватка:

Id    Name        CotType      Storage   StorageType
-------------------------------------------------
int   Varchar(35) Varchar(25)  boolean   Varchar(25)

Учитывая приведенный выше пример, если мне нужно вставить стул, то TableId в таблице мебели будет нулевым. Если есть несколько типов мебели, то я должен добавить эти идентификаторы типов в качестве внешних ключей в таблице мебели, но одновременно можно добавить только один тип.

1 Ответ

0 голосов
/ 17 мая 2018

В случае наличия нескольких свойств просто было бы создать таблицу животных со всеми общими элементами и таблицу свойств животных со столбцами animal (FK), property, value. Это, конечно, единственное решение, которое может вам подойти или не подойти.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...