信息: 我有2个表( 用户 表示网站用户, new_themes 表示主题/帖子(无论如何)由用户提供。
!!!这两个表之间没有任何关系。(如果用户登录,用户可以创建新帖子)
表格
Users:
1 id
2 name
3 email
4 password
New_themes:
1 id
2 title
3 text
4 upVotes
5 downVotes
6 TagName
我想做什么:
我创建了一个用户可以喜欢这个帖子的功能(但是他可以无限次地喜欢它)但是我希望他们能够在一生中只喜欢一次帖子。
我能弄清楚的是如何制作它的想法/结构/逻辑。我正在考虑创建一个表。 A"枢轴"一个表用户和new_themes( Laravel 中的多对多关系)
1 id_user
2 id_theme
如果他们两个都有一个复合主键,那么他们就不会有任何重复的值,所以如果用户想要再次投票,那么他就赢了,因为那里不可能有#t; t是重复的值。
以下是问题:
如果这是解决方案,我怀疑并且不知道如何在用户喜欢主题时填充数据透视表。如果这不是解决方案,任何建议或想法将对我完成我的wep应用程序的最后一个功能非常有帮助。
非常感谢。
答案 0 :(得分:2)
我能弄清楚的是如何制作它的想法/结构/逻辑。我正在考虑创建一个表。 A"枢轴"一个用于表用户和new_themes(Laravel中的多对多关系)
这是要走的路。所以它看起来像这样:
+---------+----------+
| user_id | theme_id |
+---------+----------+
| 1 | 1 |
+---------+----------+
| 12 | 1 |
+---------+----------+
| 14354 | 1 |
+---------+----------+
喜欢'一个主题,只需将用户和主题ID插入表中即可。其余的只是处理来自数据库的响应 - 为用户提供反馈,让他尝试不止一次等等。
当然你不应该忘记不同的能力 - 所以你需要再次从表中删除...如果你想让用户不同。
答案 1 :(得分:1)
首先,您必须创建一个包含以下字段的新表(id,user_id,theme_id,status),维护该表中用户和主题之间的关系。 当像主题这样的用户插入状态为1的记录时,如果用户不同于主题,首先检查表中的user_id,如果存在用户ID,则只需将状态更新为0,否则插入状态为1的新条目。