数据库设计 - 在数据库中存储选择

时间:2012-10-15 13:16:27

标签: mysql database database-design

我正在开发一个Web应用程序,在实现数据库之前我需要做一些研究。我希望你能在我开始编码之前帮助我做出一些好的决定。

今天我有一个数据库,其中包含一个表中的大约两百万个联系人

cid,姓名,电话,地址等......

应用程序的用户可以根据不同的标准搜索联系人表,并获取联系人列表。

用户存储在一个单独的数据库表中

用户: uid,姓名,电子邮件等......

现在我想让用户能够将搜索结果存储为选择。选择必须是表示用户获得的搜索结果中的每个联系人的cid列表。存储选择后,用户可以打开选择并向选择中的不同联系人添加注释,状态等。

我的第一个想法是制作一个选择表和一个选择 - 联系人映射表,如下所示:

选择: sid,名称,说明,uid等

SelectionContactMap: sid,cid,status,note等...

平均选择大小在1 000到10万个联系人之间,并且有数千名用户存储了许多选项,我看到SelectionContactMap表将非常快地增长。

数据库是MySql,应用程序是用PHP编写的。我的预算有限,所以我无法在任务上投入无限的硬件。

我在这里走错了路?

您有什么建议以最好的方式解决这个问题吗?

  • 其他数据库?
  • MySql具体建议,表格类型等?
  • 其他数据库设计?
  • 任何意见和建议表示赞赏。

提前致谢:)

- Tor Inge

1 个答案:

答案 0 :(得分:0)

问题:如果查询结果发生变化会发生什么 - 例如:所选联系人不再具有所选属性或添加新联系人?

如果答案是“结果集应该更新” - 那么您希望将标准存储在数据库中,而不是结果本身。

如果您需要将结果缓存一段时间,应用程序可以更好地处理,而不是数据库。