有一个名为RoundTable
它有以下列
RoundName
RoundDescription
RoundType
RoundLogo
现在,RoundType
的值类似于" Team
"," Individual
"," {{1 }}"
是否需要再增加一个名为" Quiz
"的表格。列
RoundTypes
并从回合表中删除TypeID
RoundType
,然后有一列" RoundType
"哪个有TypeID
表的外键?
有人说如果你在同一个表中有RoundType就像硬编码一样,因为将来会有很多圆形类型。 如果只有2-3种圆形类型,我不需要外键吗?
答案 0 :(得分:4)
有必要吗?显然不是。 SQL无论哪种方式都可以。在正确定义的数据库中,您可以为RoundType
执行以下两项操作之一:
enum
放入此类别中)如果你有一个查找表,我会主张为它提供一个自动递增的id(称为RoundTypeId
)。请记住,在更大的数据库中,这样的表通常会有两列以上:
在更高级的系统中,您可能还需要使系统国际化 - 即使其适用于多种语言。然后你会在其他表中查找实际的字符串值。
答案 1 :(得分:2)
是否只有2-3种圆形,我不需要 有外键??
通常恰恰相反:如果大多数记录的值不同(例如“lastName”列中的值),则不会使用查找表。
但是,如果您知道您将拥有一组有限的允许/可能值,则通过外键引用的查找表可能是更好的解决方案。
也许阅读“数据库规范化”,或许可以从@ Wikipedia开始。
答案 2 :(得分:1)
实际上,如果实体之间存在以下关联,则需要使用单独的表
现在问一个简单的问题, 圆桌中的单个记录是否有多个roundType? 如果是这样..制作一个新表并在ROUNDTable中使用外键。
否则没有。
答案 3 :(得分:0)
但是稍后您可以查看以获得所需的结果作为休闲
创建视图vw_anyname 如 从圆桌连接tblroundtype中选择RoundName,RoundDescription,RoundLogo,RoundType on roundtable.TypeID = tblroundtype .typeid
从vw_anyname
中选择*