业务需要在消息中心处以不同消息模板展示给用户,比如有帖子被评论、评论被回复、被 @等等。
需要显示:
Ganxiaozhe 回复了你在 XXX 的评论 [查看]
问题:如何设计消息数据表比较优雅(最优数据读写以及查询的方案)
目前数据表设计如下
| 字段 | 类型 |
| :-------- | ------------ |
| id | int(11) |
| status | tinyint(4) |
| name | varchar(16) |
| email | varchar(256) |
| password | text |
| avatar | varchar(255) |
| 字段 | 类型 |
| :------ | :----------- |
| id | int(11) |
| sort | varchar(32) |
| attr | varchar(255) |
| type | tinyint(4) |
| uid | int(11) |
| comment | text |
| time | datetime |
| ppid | int(11) |
| pid | int(11) |
| puid | int(11) |
| 字段 | 类型 |
| :-------- | :--------- |
| ID | int(11) |
| TYPE | tinyint(4) |
| STATUS | tinyint(4) |
| UID | int(11) |
| CRT_ID | int(11) |
| CTR_DT | int(11) |
| SOURCE_ID | int(11) |
目前实现为 PHP 后端取得 MySQL 数据后,以数组对象传给前端(一次取 20 条最新消息)。依靠 user_msg 中的 TYPE 判断使用哪个模板类型,若为评论(1),那么则通过 CRT_ID 向 user_basic 取得用户名和头像。再根据 SOURCE_ID 向 comment 取得具体页面及内容。
问题是这样需要递归多次请求,以及如果后面需追加模板也比较繁琐,比如问答的:
Ganxiaozhe 回答了你提出的问题 XXX [查看]
在之前的业务我是直接将信息写在了数据库里,但感觉有点占空间,所以这次准备采用模板的方法。不知道这样是否是实现的最佳方案,非常期待大家的回答,还请不吝赐教!
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.