【问题标题】:What is the best way of storing authors of books in database?在数据库中存储书籍作者的最佳方式是什么?
【发布时间】:2016-07-17 09:31:50
【问题描述】:

我有一个名为Book 的表和一个名为Author 的表。为了将作者与书籍联系起来,我创建了另一个名为 AuthorOfBook 的表,其中 Priority 是整数值,有助于让每本书的作者按正确的顺序(1、2、3...)。

这是一个好的解决方案吗?首先,我认为存储比整个字符串更多的数字将有助于节省空间,但后来我在书的封面图像中添加了二进制字段,所以现在没关系了。我应该删除AuthorOfBook 表并将外键BookId 添加到Author 表吗?如果我这样做,我的查询看起来会更简单,我不需要那么多表,但管理作者会更难。

那我的Priority 专栏呢?有什么编码标准吗?

【问题讨论】:

  • 第一种方案是正确的。坚持下去。
  • 只有在您确定该书只能有一位作者的情况下才能使用第二种解决方案。但是将作者的 FK 添加到 Book 表中
  • AuthorOfBook 表增加了您对案例“一本书可以由多个作者撰写”的设计支持。如果你放弃它,你将失去多对多的关系。

标签: database coding-style standards


【解决方案1】:

如果您需要优先考虑,我认为第一个选项绝对是最好和最正确的选项。优先权是关系的属性,而不是作者,所以它不应该在作者身上。如果作者在一本书上的优先级为 1,而在另一本书上的优先级为 5,该怎么办? :)

【讨论】:

  • 如果我使用第二种方法,Author 表中可能会有多个记录具有相同的作者姓名。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-10-22
  • 1970-01-01
  • 2010-10-11
  • 2010-09-14
  • 1970-01-01
  • 2013-07-22
相关资源
最近更新 更多