2012-04-13 119 views
0

我有一个数以千计的书籍(标题,年份,作家等)数据库表。用户可以将他们已阅读的书籍添加到列表中。我想给他们添加他们自己的图书的能力,如果他们不在数据库中可用,他们将只为该用户提供。我应该创建一个新表格,还是只需将他们的书籍添加到主表格中的“is_custom”和“user_id”列?第二种方式对我来说似乎更容易管理(例如,在搜索方面,加入两张表似乎很愚蠢..),但是我问,既然(我的书和用户书籍)会变得相当大..我应该创建一个数据库表还是两个?

谢谢!

回答

0

理论上最好的方法是对一个实体使用一张表。所以变体1. '用户' - 通过链接表(多对多)的另一个表。您自己的书籍属于预定义的常用用户(更好,或者没有与用户的链接)。

在OOP数据库中,您可以使用父表和两个孩子。但起初看,你的情况并不需要这样。

0

我首先设计的是简单性和可维护性,一旦知道自己有问题,只会介绍性能改进。 “漂亮”对不同的人来说意味着不同的事物 - 但是如果你必须解决这个问题,如果你将数据分成两个表格,或者可能更糟 - 你可能需要解决两次问题。不同的解决方案来管理“books”表,而不是“userBooks”表。

相关问题