php – 数据库设计
我有4个表:用户,帖子,类别,categories_map
帖子有id,text,category_id 我的目标是使用户可以预览的队列.此外,用户将能够跳过一些帖子或编辑其中的文本.如果用户跳过一个帖子,它将永远不会出现在队列中.但是,用户无法更改序列,因为cron将执行脚本. 我认为的第一种方法是创建一个包含的表 第二种方法是创建一个单独的表,其中将为用户user_id,category_id,text_modified生成队列.所以,cron工作可以轻松地按照这个表进行操作,并在完成后删除行.但是,如果我有30个用户,平均有3个类别,每个包含5000个帖子,我的表将已经有45万行.是的,如果它被正确索引,它应该是好的.但是当我有100-200个用户的时候,它可以扩展吗? 我应该去哪一种方法,还是有其他解决方案?
很多事情取决于你的产品.我们不知道:
用户如何互相交流? 说了所有这些未知数,我会刺伤一下: >如果问题4的答案为YES,则选项#2似乎从您的PK中判断出更好的声音. 对于数据库大小,我认为您正在进行一些预优化.您应该考虑表宽度.由于你的表非常狭窄(只有几列,主要是int),你不应该太担心特定表的长度. 当这成为约束(您可以进行基准测试或等待在特定服务器上查看磁盘空间)时,可以轻松地对用户进行分片来扩展数据库.您基本上将不同用户放在不同的数据库服务器 >注意:问题1将决定上述的容易程度. 说出这一切,记住性能意义: >这些名单将会变得很久. 在这种情况下,您可能需要查看一些分布式缓存,如Memcached,Redis. >注:根据问题2& 3,你甚至可能不需要持久化队列. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |