【发布时间】:2013-02-17 13:25:56
【问题描述】:
我正在用 PHP MySQL 开发一个论坛。我想让我的论坛尽可能高效。
这两张表我做了
- tbl_threads
- tbl_cmets
现在,问题是每个评论下都有一个喜欢和不喜欢的按钮。我必须使用comment_id 存储已单击“喜欢”或“不喜欢”按钮的user_name。我在tbl_comments 中创建了一个user_likes 列和一个user_dislikes 列来存储逗号分隔的user_names。但是在这个论坛上,我读到这不是一种有效的方法。有人建议我创建第三个表来存储喜欢和不喜欢,并让我的数据库设计符合 1NF。
但问题是,如果我创建第三张表 tbl_user_opinion 并创建两个这样的字段
1.comment_id
2.类型(喜欢或不喜欢)
那么,我是否必须运行与我页面上的 cmets 一样多的 sql 查询才能获取每个评论的喜欢和不喜欢数据。会不会低效。我认为我在这里有些困惑。有人能澄清一下吗?
【问题讨论】:
-
Postgres 可以使分层查询比 mysql 容易得多
标签: mysql sql database database-design relational-database