Каков наилучший подход к разработке таблиц БД для типа, который имеет несколько форм.
Например, Животное, которое может быть любым животным со своими специфическими свойствами.
таблица для животных с общими столбцами и отдельными таблицами для каждого типа. Но как сохранить ссылки на внешние ключи в основной таблице животных? Мы не можем сохранить один ключ для каждого типа, если типы растут, ссылки также будут расти. А для одной строки существует только один тип, а все остальные ключи в таблице животных будут нулевыми.
Есть ли лучший способ конструировать таблицы, кроме этого?
Например, рассмотрим таблицы ниже
Мебельный стол:
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 в таблице мебели будет нулевым. Если есть несколько типов мебели, то я должен добавить эти идентификаторы типов в качестве внешних ключей в таблице мебели, но одновременно можно добавить только один тип.