这种情况下的最佳数据库(mysql)结构:

时间:2010-04-08 13:21:10

标签: mysql structure performance

我们有三种类型的数据(表格):

  • 书(身份证,姓名,作者......)(约300万行)
  • 类别(id,名称)(约2000行)
  • 位置(id,名称)(约10000行)

一本书必须至少有一种类别(最多3种),而一本书必须只有一种位置。

我需要关联这些数据以更快地获得此查询:

选择其中Category ='cat_id'AND Location ='loc_id'

的图书

选择匹配(名称)的书籍('书名')和位置='loc_id'

我需要一些帮助。 感谢

2 个答案:

答案 0 :(得分:1)

有另一张表,比如bookscategories,其中'id,bookid,categoryid'为字段。

使用此功能将图书映射到类别。

原始查询不会受到影响,因为第一个查询需要一个特定类别和位置的图书,第二个查询需要与标题和一个位置匹配的图书。

答案 1 :(得分:0)

对于这个大小的表格,我认为它是中等大小(不小,不大),它更有可能产生差异的指数。正确创建表并适当地加入它们(在索引的主键和外键上),你的表现应该没问题。