2

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

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

联系方式: cid、姓名、电话、地址等...

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

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

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

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

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

选择: sid、name、description、uid等

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

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

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

我在这里走错路了吗?

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

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

提前致谢 :)

——托尔英格

4

1 回答 1

0

问题:如果查询结果发生变化——例如:选定的联系人不再具有选定的属性或添加了新联系人,会发生什么情况?

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

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

于 2012-10-15T13:21:04.333 回答