Data structures 通知的数据库表结构,如社交网站的表
我正在开发一个像Facebook这样的社交网站。我不知道如何创建通知表的结构。在频繁添加和删除记录的情况下,是每个用户单独使用还是所有用户都使用大型表?我和您有相同的问题,在研究给出的表结构的位置时发现:Data structures 通知的数据库表结构,如社交网站的表,data-structures,database-design,notifications,Data Structures,Database Design,Notifications,我正在开发一个像Facebook这样的社交网站。我不知道如何创建通知表的结构。在频繁添加和删除记录的情况下,是每个用户单独使用还是所有用户都使用大型表?我和您有相同的问题,在研究给出的表结构的位置时发现: id user_id (int) activity_type (tinyint) source_id (int) parent_id (int) parent_type (tinyint) time (dateti
id
user_id (int)
activity_type (tinyint)
source_id (int)
parent_id (int)
parent_type (tinyint)
time (datetime but a smaller type like int would be better)
其中:
活动类型告诉我活动的类型,源id告诉我活动相关的记录。因此,如果活动类型的意思是“添加收藏夹”,那么我知道源id指的是收藏夹记录的id
家长id/家长类型对我的应用程序很有用-他们告诉我活动与什么相关。如果喜欢某本书,那么parent\u id/parent\u type会告诉我该活动与具有给定主键(id)的书(type)相关
我索引(用户id,时间)并查询在(…朋友…)和时间中属于用户id的活动。放弃id并选择不同的聚集索引可能是个好主意——我还没有尝试过
非常基本的东西,但它是有效的,它很简单,并且随着你需求的变化很容易使用。此外,如果您不使用MySQL,您可能可以在索引方面做得更好
它还建议在那里使用,以便更快地访问最新的活动。
在混合使用Redis的情况下,其工作原理可能如下:
- 创建您的MySQL活动记录
- 对于创建活动的用户的每个朋友,将ID推送到他们在Redis中的活动列表上
- 将每个列表修剪到最后X个项目
我希望这也能对你有所帮助到目前为止,我已经创建了帖子、个人资料和照片等表格。但我对通知感到困惑。看,我有两种想法-1。每个用户的小通知表和存储所有通知的大表。例如,非11(身份证,非身份证)。通知主机(notf_id、memid、notif_text、dttime)。这样,我将一直更新这两个表。只要用户在其表格中的日志被引用,就会显示notifi。你说什么?有人回答吗?仅仅给出一个链接引用作为回答是不好的。如果链接被更改/更新/编辑/删除,答案将自动失效。因此,请始终尝试解释答案,然后给出参考。