mysql – 具有更多列的单个表与具有更少列的多个表
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了mysql – 具有更多列的单个表与具有更少列的多个表,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1050字,纯文字阅读大概需要2分钟。
内容图文
![mysql – 具有更多列的单个表与具有更少列的多个表](/upload/InfoBanner/zyjiaocheng/897/a9e5e46c6d474be4a3e6a15fa71f75e3.jpg)
什么是更好的社交网络网站数据库设计?具有更多列和更少行的单个表,或具有更少列但更多行的多个表?
例如:用户可以在其墙上或组中发布更新.
我能想到的两个数据库设计是:
设计1
UserPosts
> id
> userId
>发布
> datetime
UserGroupPost:
> id
> groupId
> userId
>发布
> datetime
潜在问题:可能需要连接,这可能(将来)是一个慢查询.
设计2
帖子:
> id
> userId
> groupId
>发布
> datetime(如果用户在他们的墙上发帖,groupid将为null)
潜在问题:在大型数据集上循环可能需要(很长)时间.
如何在数据增加时获得更好的性能?还有其他(更好的)方式吗?
解决方法:
我在这里的倾向永远是设计选项1,或至少沿着那些线.不要过于担心在将来的查询中尝试消除连接表的需要 – 任何规范化的数据库都会在任何有用的查询中使用连接,这只是关系数据库.
另外,为什么你必须加入你网站的userPosts和userGroupPosts表?它们不会单独显示吗?您加入这些表的唯一原因可能是在搜索帖子时,但为此编写高效查询应该不会太难.除此之外,您最终可能希望查询表以进行分析,但这不是此数据库的主要目的.
设计2至少意味着你最终会得到一张非常繁忙的桌子.
最好的选择是每个原型并运行一些测试.构建每个设计选项的原型,并使用一些虚拟数据对不同的操作进行一些性能基准测试.
内容总结
以上是互联网集市为您收集整理的mysql – 具有更多列的单个表与具有更少列的多个表全部内容,希望文章能够帮你解决mysql – 具有更多列的单个表与具有更少列的多个表所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。