此时我有一个用户表,其中包含以下字段“ 身份证,姓名,电子邮件,性别,密码和头像。
现在,这些用户将拥有物品,将会去地方,会有朋友并会做一些动作。将有关于他们活动的统计数据。
我应该存储这些操作的引用(以及相应的统计信息)并将操作本身存储在其他表中,还是应该向此表中添加更多字段?
例如, 签到,跟随,朋友 - 这些应该在另一张桌子上吗?
活动怎么样?
有人是另一个人的朋友。 有人跟随另一个人。 现在有人有某种地位。
这些是否应该存储在一个表中,其中包含时间戳和与之相关的相应操作(有人喜欢这篇文章,评论等)
答案 0 :(得分:0)
经过一番阅读并在这里询问我的结论是什么:
每种类型对象的表格: 用户 项目 地方强>
每个对象的附加数据表: 用户信息,操作 项目信息 地点信息
每种操作或事件的表格 的喜好 以下 友谊强>
事件表
event_id,event_type,parameter1,参数2,参数3,参数4 *(* 检查以下注释 ) *
活动喜欢的表格 event_id,person_id
用于事件评论的表格 event_id,person_id,comment_text
如果用户的邮箱中有13封邮件,其中8封邮件已被阅读,则在邮件表中,这将是一个布尔值"读取"。
到目前为止看起来还不错吗?
如果我想要统计数据,我不会将它们存储在记录中,我将计算某些查询的结果数量,例如:
用户Kylie有14个关注者,因为这是此用户查询表格后返回的行数
注意:唯一困扰我的是事件表,因为不同类型的事件需要不同的参数,例如
事件类型友谊需要两个用户' IDS。 事件类型购买需要用户和产品ID。
所以我可以将所有事件存储在一个表中,还是应该为每个事件类型创建多个表?
PS:在我实现它们之前,我使用umlet来布局设计和表之间的关系