我需要创建一个用户可以添加猫或狗的系统,但我不知道如何设计表来处理它。
首先:
例如对于狗我需要2个特定的字段,对于猫,我需要其他2个特定字段,然后我有大约5/6个共享字段。
哪种做法最好?两个不同的表或只有一个名为type
的列,其中:
type = 1是狗
type = 2是cat
并设置NULL
我不需要的特定字段?
同样的问题是针对狗的比赛和猫的比赛...更好的是一张桌子,其中存储所有这些并用type
列分隔它们?
或者两个不同的表是正确的方法吗?
答案 0 :(得分:0)
我会说:开始简单。一个表用于具有类型列的动物(它可以是显式varchar,如'DOG'和'CAT'),一个表用于比赛,还有一个类型列。在这之上插入ORM会更容易,如果你必须运行一些统计数据,则更容易查询。
唯一可能的问题是: - 越来越多的列将是一种动物独有的,导致一些重型重构 - 如果应用程序混淆数据
,则Pet的TYPE列与其Race之间可能不匹配