PHP PDO通知系统
PHP PDO Notification system
我目前正在为我的管理面板制作一个通知系统。现在我有 2 个问题:
DB table:
CREATE TABLE IF NOT EXISTS `notications` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`uid` int(11) NOT NULL,
`type` varchar(265) COLLATE utf8_unicode_ci NOT NULL,
`link` varchar(265) COLLATE utf8_unicode_ci NOT NULL,
`text` varchar(265) COLLATE utf8_unicode_ci NOT NULL,
`seen` int(1) NOT NULL DEFAULT '0',
`date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
);
将通知设置为可见的最佳方法是什么(目前无法提供任何代码,请告诉我最简单的方法。)?
我将向管理面板上的所有员工发送相同的通知。那么我应该只用每个用户 ID 在数据库中创建多条记录,还是有更好的方法?
您的 table 中有第 "seen" 列。默认为 0(未看到),将其设置为 1 表示已看到通知。
在 table 通知中输入多项。条目具有不同的 uid(用户 ID),这样您就可以获得想要的用户的通知。
由于您要求 "better way",因此答案可能会有所不同。这是我的看法:
- 有高手table上市通知
- 有一个 table 专门用于通知分发
这称为 one-to-many 关系。
优势?
- 您可以编辑通知信息,而不会弄乱充满重复通知的 table。
- 遵循DRY原则
你是怎么让它被人看到的
IMO有两种可能的方式:
让通知将用户重定向到首先将其设置为 "seen" 的页面,然后让该页面将用户重定向到实际通知 link
当用户点击通知时,在javascript中使用preventDefault()
停止导航,向php发送ajaxget请求将其设置为 "seen" 的页面,然后使用 location.href
将用户重定向到他们的目的地
我目前正在为我的管理面板制作一个通知系统。现在我有 2 个问题:
DB table:
CREATE TABLE IF NOT EXISTS `notications` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`uid` int(11) NOT NULL,
`type` varchar(265) COLLATE utf8_unicode_ci NOT NULL,
`link` varchar(265) COLLATE utf8_unicode_ci NOT NULL,
`text` varchar(265) COLLATE utf8_unicode_ci NOT NULL,
`seen` int(1) NOT NULL DEFAULT '0',
`date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
);
将通知设置为可见的最佳方法是什么(目前无法提供任何代码,请告诉我最简单的方法。)?
我将向管理面板上的所有员工发送相同的通知。那么我应该只用每个用户 ID 在数据库中创建多条记录,还是有更好的方法?
您的 table 中有第 "seen" 列。默认为 0(未看到),将其设置为 1 表示已看到通知。
在 table 通知中输入多项。条目具有不同的 uid(用户 ID),这样您就可以获得想要的用户的通知。
由于您要求 "better way",因此答案可能会有所不同。这是我的看法:
- 有高手table上市通知
- 有一个 table 专门用于通知分发
这称为 one-to-many 关系。
优势?
- 您可以编辑通知信息,而不会弄乱充满重复通知的 table。
- 遵循DRY原则
你是怎么让它被人看到的
IMO有两种可能的方式:
让通知将用户重定向到首先将其设置为 "seen" 的页面,然后让该页面将用户重定向到实际通知 link
当用户点击通知时,在javascript中使用
preventDefault()
停止导航,向php发送ajaxget请求将其设置为 "seen" 的页面,然后使用location.href
将用户重定向到他们的目的地