RvP*_*vPr 3 sql database postgresql database-design relational-database
我目前正在设计一个应用程序,用户可以在其中创建/加入群组,然后在群组中发布内容.我试图弄清楚如何最好地将这些内容存储在RDBMS中.
选项1:为所有用户内容创建单个表.此表中的一列将是groupID,指定发布内容的组.使用groupID创建索引,以便快速搜索特定组中的内容.所有内容读/写都将触及此单个表.
选项2:每当用户创建新组时,我们动态创建一个新表.像group_content_ {groupName}这样的东西.所有内容读/写都将路由到特定于组的动态创建的表.
方案1的优点:
方案2的优点:
从性能/开发/维护的角度来看,上述两个选项之间的一般建议是什么?
计算中的一个主要问题是过早优化.这个20多年的DBA认为你高估了这些组中发生的IO.RDBMS非常擅长在一组标准表中查询和编写这种类型的信息.最坏的情况是,您可以稍后对其进行分区.使用1组表而不是每个用户设置,您将拥有更多的搜索功能和管理简便性.
想象一下,架构是否需要改变?你真的想更新数百或数千个表或写一些长脚本来解决一个平凡的问题吗?坚持使用一组表并忽略分片.相反,想一想"如果有必要,我们可能会在某一天对表格进行分区"
| 归档时间: |
|
| 查看次数: |
77 次 |
| 最近记录: |