我的自制博客的类别是否可以有一个列表?我真的看不出这张桌子还有什么。
此表与posts
表有很多关系。
我的理由是我不想要相同的类别,这样我的类别也会成为主键。
答案 0 :(得分:1)
我会添加一个代理键,主要有两个原因:
当然,您还必须在类别名称上保留唯一索引,并将其标记为非空,否则您最终可能会为同一类别名称提供2个ID,或者类别名称为null的ID。
答案 1 :(得分:0)
逻辑上,如果您想在录制帖子之前预定义类别,那么使用名称作为键的单列表没有问题。如果没有帖子的类别不存在,您甚至不需要这个单列表。
实际上,名称不如代理键稳定。除非您期望庞大的数据集,否则您的DBMS不支持ON UPDATE CASCADE,或者您设计的数据库很差,这不是一个值得关注的问题。如果您的类别名称很长并且您期望有大量数据集,则记录大小,索引大小和连接性能可能会成为一个问题。另一方面,使用类别名称直接否定连接(使用类别表来获取名称)。您选择的关键分数与What are the design criteria for primary keys?
中指定的其他条件完全相同总而言之,单列表适用于您指定的要求。