Я думаю, что вы ищете базовый стол, animal
. Тогда у вас есть два подкласса cat
и dog
. Такой дизайн поможет вам, когда вы добавите информацию, такую как «владелец» этого животного, или «наблюдение за животными», или какова бы ни была цель вашего приложения.
table animal(
animal_id
,animal_type <-- Discriminator column with for example C for cat, D for dog
,name
,age
,primary key(animal_id)
)
table cat(
animal_id
,cat_strength
,primary key(animal_id)
,foreign key(animal_id) references animal(animal_id)
)
table dog(
animal_id
,dog specific attributes here
,primary key(animal_id)
,foreign key(animal_id) references animal(animal_id)
)
Как видите, я переместил общие атрибуты в базовую таблицу animal
, сохранив при этом конкретные атрибуты для подклассов в таблицах подклассов.