EBA*_*BAG 2 mysql sql database database-design
我有一个包含100000个产品的产品表,而且我有一个包含5000条记录的用户表.并假设用户可以向我们提供有关此产品的任何组合的反馈.所以假设他选择比较产品1,3,100,200,400,500等等.(他可以向我们发送关于其他一些产品的其他反馈)
所以这是我的问题,我只是想知道专家数据库设计师会考虑产品和用户数量众多的情况.存储此评级的一种方法是使用单个字符串:1#5 3#4 100#5 .... x#y表示他将y星给了id为x的产品.我可以在我的php脚本中加载这个vote_string,例如并提取它的详细信息.
所以评级表可能会有这样的结构:id,user_id,vote_string
另一种方法是将此反馈存储在此结构中:
投票表: id,user_id,日期
vote_details表: vote_id,product_id,vote ==>(vote_id,products_id)作为主键,而vote_id是外键.
(或者这两个表可以在单个表中压缩,如id,user_id,product_id,vote [id,user_id,product_id]作为主键)
所以我想在第二个设计中查询更容易,但每个查询消耗更多的空间和时间,在产品删除的情况下,使用第二个设计要好得多.你会怎么做?
任何一种想法都是适用的.
你几乎从不想在数据库领域连接字符串.只是让生活真的很痛苦地进行查询 - 而且,实际上并不是数据库设计用于处理数据的方式.
认为你想要你的第二种方法.您需要考虑主键等(即同一个人可以为产品投票两次吗?}