我正在开发一个 Web 应用程序,在实现数据库之前我需要做一些研究。我希望你能在我开始编码之前帮助我做出一些好的决定。
今天我有一个数据库,其中在一个表中包含大约 200 万个联系人
联系方式: cid、姓名、电话、地址等...
该应用程序的用户可以根据不同的条件搜索联系人表,并获取联系人列表。
用户存储在单独的数据库表中
用户: uid、姓名、电子邮件等...
现在我想让用户能够将搜索结果存储为选择。选择必须是一个 cid 列表,代表用户获得的搜索结果中的每个联系人。当存储选择时,用户可以打开选择并将注释、状态等添加到选择中的不同联系人。
我的第一个想法是制作一个选择表和一个选择联系映射表,如下所示:
选择: sid、name、description、uid等
SelectionContactMap: sid、cid、status、note等...
平均选择大小在 1 000 到 100 000 个联系人之间,并且有数千名用户存储了许多选择,我看到 SelectionContactMap 表将变得非常大非常快。
数据库是 MySql,应用程序是用 PHP 编写的。我的预算有限,所以我不能在任务上投入无限的硬件。
我在这里走错路了吗?
你有什么建议可以以最好的方式解决这个问题吗?
- 其他数据库?
- MySql 具体建议,表类型等?
- 其他数据库设计?
- 任何意见和建议表示赞赏。
提前致谢 :)
——托尔英格