Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/261.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 全局通知的数据库设计_Php_Mysql - Fatal编程技术网

Php 全局通知的数据库设计

Php 全局通知的数据库设计,php,mysql,Php,Mysql,我有一个通知系统,其中有各种类型的“评论”、“添加产品”等,也有很多用户 基于用户的好友,当用户或其好友执行操作时,将看到通知。问题是,我必须维护一个记录,记录哪个朋友读过或没有读过通知,我已经有一个表,其中存储了: notification_id, type_id , item_id , user_id , owner_user_id , is_seen, time_stamp, title_html, title_text, body_html, body_

我有一个通知系统,其中有各种类型的“评论”、“添加产品”等,也有很多用户

基于用户的好友,当用户或其好友执行操作时,将看到通知。问题是,我必须维护一个记录,记录哪个朋友读过或没有读过通知,我已经有一个表,其中存储了:

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\u seen
中看到通知的所有朋友id,还是应该创建一个名为
notification\u seen
的新表,在该表中为每个看到该通知的朋友维护记录

所有通知将持续30天,并且还必须记住,如果一个用户有200多个朋友,那么将200个ID存储在一个数组中,然后检索它并打破数组,然后显示它们(根据我的说法,这是一个很长的过程)


那么,有人能建议哪一种方法更好,还是我不知道的更好的方法呢?

使用单独的表格。关系数据库中的数组总是一个坏主意,因为如果查询中没有用户定义的函数或复杂的表达式,就无法将数据库操作和查询应用于单个数组元素。而且它也不遵循规范化范式。

使用单独的表。关系数据库中的数组总是一个坏主意,因为如果查询中没有用户定义的函数或复杂的表达式,就无法将数据库操作和查询应用于单个数组元素。而且它也不符合规范化范例。

您可以使用每x天运行一次的cron作业(PHP脚本)删除超过30天的通知。是否有针对cron作业的gud TUT?以前从未使用过它。Cron jobs用于linux,windows称为任务调度。关于cron的更多信息:,关于windows schedular的更多信息:您可以使用每x天运行一次的cron作业(PHP脚本)删除早于30天的通知。是否有关于cron作业的gud TUT?以前从未使用过它。Cron jobs用于linux,windows称为任务调度。关于cron的更多信息:,关于windows schedular的更多信息:谢谢@ALEX我也这么想。数组将导致遵循规范化范例谢谢@ALEX我也这么想。数组将导致遵守规范化范式