有一个名为RoundTable的表
它具有以下列
RoundName
RoundDescription
RoundType
RoundLogo现在RoundType将具有像"Team“、"Individual”、"Quiz“这样的值
是否有必要再创建一个包含列的名为"RoundTypes“的表
TypeID
RoundType并从rounds表中删除RoundType,并拥有一个"TypeID“列,该列具有指向此RoundType表的外键?
有人说,如果你把RoundType放在同一张表中,就像硬编码一样,因为将来会有很多轮类型。是不是只有2-3个轮类型,就不需要外键了??
发布于 2014-04-25 19:32:29
有必要吗?显然不是。无论哪种方式,SQL都工作得很好。在正确定义的数据库中,您可以对RoundType执行以下两项操作之一
enums归入这个类别)如果您有一个查找表,我建议为它设置一个自动递增的id (称为RoundTypeId)。请记住,在较大的数据库中,这样的表通常具有两个以上的列:
分布式名称名称-- when it it created
很重要
在更高级的系统中,您可能还需要对系统进行国际化--也就是说,使其适用于多种语言。然后您将在其他表中查找实际的字符串值。
发布于 2014-04-25 19:30:33
是不是只有2-3个轮类型,就不需要外键了??
通常情况正好相反:如果对大多数记录(如"lastName“列)使用不同的值,则不会使用查找表。
但是,如果您知道您将有一组有限的允许/可能的值,那么通过外键引用的查找表可能是更好的解决方案。
也许阅读一下“数据库规范化”,可以从@ Wikipedia开始。
发布于 2014-04-25 19:33:05
实际上,如果实体之间有以下关联,则需要有单独的表,
由于这些关联的优点,简单的DBMS变成了**R**DBMS (Relation.)
现在问一个简单的问题,我在圆桌中的单个记录是否有多个roundTypes?如果是这样的话..在ROUNDTable中创建一个新表并具有外键。
否则就不会。
https://stackoverflow.com/questions/23291691
复制相似问题