就像一篇帖子/评论一样,laravel

时间:2016-07-15 10:21:51

标签: php mysql database laravel

信息: 我有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应用程序的最后一个功能非常有帮助。

非常感谢。

2 个答案:

答案 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的新条目。