我正在构建一个带有用户表和活动表的Laravel应用程序,以及使用名为assignments的数据透视表实现的活动和用户之间的多对多关系:
-
用户:id,...
-
活动:id,...
-
赋值:id,activity_id,user_id,...
我需要记录用户每次完成活动的时间 . 用户可以多次完成相同的活动 . 我试图决定在数据库中建模的最佳方法 . 我可以看到的选项是:
-
表完成次数:id,assignment_id,...
-
第二个数据透视表完成:id,activity_id,user_id,...
我可以创建迁移等 . 但是我正在努力使用Model类及其关系方法 . 特别是,对于上面的第一个选项,我如何定义所需的Model类和关系方法?
2 回答
好吧,除了活动跟踪之外,你几乎可以排序 . 所以,这就是我的建议:
列ID,姓名,电子邮件等
列id,名称等
with column id,user_id,activity_id等 . 此表将包含用户和活动之间的多对多映射 .
使用列id,user_activity_id,status,updated_at等这里你可以使用一个整数值来表示完成让我们说1.并且使用updated_at和created_at你可以跟踪活动的开始和完成时间 .
创建
activity_user
表,只需添加activity_id
和user_id
. id列不需要这个 . 然后将此代码添加到用户模型:如果我理解正确,则不需要任何其他内容 .