让我们从Yelp中获取示例:http://www.yelp.com/boston
您可以看到它是一个包含多个不同类别的网站,每个类别都包含一个地方列表。我应该在一个表中包含所有不同的地方/列表,还是让每个类别都有自己的表?
编辑:这意味着拥有表'places_restaurants'和'places_nightlife',而不是只有单个表'places',每个不同类别的每个条目都将存储在一个巨大的表中......这会影响性能吗? / p>答案 0 :(得分:3)
每个类别一个表格要求您在每次有新类别时创建表格。我更喜欢CATEGORY和PLACE表,它们之间有一对多或多对多的关系。
答案 1 :(得分:2)
您应该将所有类别保留在同一个表中,然后使用CategoryID将每个类别实际映射到特定/所需类别。您的应用程序应该以一种本身可扩展的方式构建,每次创建表绝对不是。
答案 2 :(得分:0)
这取决于。您可以规范化数据库,以便所有类别都在自己的表中,并且只能通过外键从其他表引用。但是有一些论点表明性能超过了规范化,因此将类别名称保存在他们自己的记录表中,以及在其他经常连接的表中包含类别名称列可能是有益的。
如果采用第二种方法,则需要通过实现UPDATE和DELETE触发器来确保数据完整性,以便每当记录表中的类别发生更改时(可能不经常),包含类别名称副本的其他表也会得到更新。
答案 3 :(得分:0)
它仍然取决于应用程序,所有类别都是具有主表的多对多字段,当然相信你在每个表中都有一些独特的列