我有一个通知系统,其中有各种类型的“评论”,“product_added”等,也有很多用户。
基于用户的朋友会看到用户或他/她的朋友执行操作时的通知。问题是我必须保留一个朋友已阅读通知的记录,我已经有一个表格,我已经存储了:
notification_id,
type_id ,
item_id ,
user_id ,
owner_user_id ,
is_seen,
time_stamp,
title_html,
title_text,
body_html,
body_text,
href,
icon_url
我是否应该使用数组存储在is_seen
中看到通知的所有朋友ID,还是应该创建一个名为notification_seen
的新表,其中我为每个看过该通知的朋友保留记录?
所有通知都会持续30天,还要记住,如果用户有超过200个朋友,那么在数组中存储200个ID,然后检索它并打破阵列然后显示它们(注意一个长程序)根据我)。
那么任何人都可以建议哪一种更好的方式或更好的方式我不知道?
答案 0 :(得分:5)
使用单独的表格。关系数据库中的数组总是一个坏主意,因为如果没有用户定义的函数或查询中的复杂表达式,您无法将数据库操作和查询应用于单个数组元素。而且它也不符合规范化范式。