【发布时间】:2019-07-11 14:36:59
【问题描述】:
我正在使用 Laravel 构建一个应用程序来预测比赛结果的顺序。所以我制作了一个包含参与者的表格,现在我希望用户预测参与者的结果顺序并将其保存到数据库中。
例如,有 6 个参与者(在数据库表中),我想预测结果。我会说:
- 参与者 4
- 参与者5
- 参与者2
- 参与者 1
- 参与者6
- 参与者 3
我创建了一个名为“预测”的表格,我想在其中保存一个“用户 ID”和预测。实际上它是一个包含参与者 ID 的数组。但是保存和检索它的最佳方法是什么?
非常感谢您的帮助。
罗纳德。
【问题讨论】:
-
3 列;
user_id、participant_id、placement。User可以有多个Prediction,每个Prediction有一个Participant,显示的时候按placement排序返回的predictions。一般来说,尽量避免将数组保存到数据库中,并使用适当的关系数据库实践。 -
哇,这实际上是非常简单但可靠的解决方案。所以你建议使用数据透视表?
-
我想会的;命名约定和表格将是非标准的(通常您会命名数据透视表,因为它与它链接的表格相关,例如
users_participants),但它仍然是User和@987654333 之间的many-to-many@,带有用于指定顺序的附加列。 -
谢谢!我使用它进行了管理,但不是使用多对多,而是使用了 belongsTo。一个用户可以做出一个预测,所以一个用户有很多预测(因为多行),但是一个预测属于一个用户并且属于一个参与者。
-
不错!我认为这就是我在第一条评论中所逃避的,但是如果没有架构/模型等等,它会有点难以可视化。真高兴你做到了。非常欢迎您将您如何完成此作为自我回答发布(包括架构或本地/外键值,如果可以的话,还包括具有关系逻辑的模型)
标签: mysql database relationship