Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在一个db列中存储多个值_Php_Mysql_Laravel - Fatal编程技术网

Php 在一个db列中存储多个值

Php 在一个db列中存储多个值,php,mysql,laravel,Php,Mysql,Laravel,我正在尝试创建一个透视表,以帮助跟踪我的应用程序中的“挑战”。基本上,我有一个challenge\u taskpivot表,它在挑战和任务之间创建了一个关系。当处于挑战中的用户完成任务时,我希望能够告知,以便跟踪用户的进度。如何存储完成挑战任务的多个用户的最佳方式 我想在pivot表中添加一个名为user\u completed的json列来处理这个问题,并为每个完成挑战任务的用户存储user\u id 所以挑战任务看起来像 challenge_id | task_id | user_compl

我正在尝试创建一个透视表,以帮助跟踪我的应用程序中的“挑战”。基本上,我有一个
challenge\u task
pivot表,它在挑战和任务之间创建了一个关系。当处于挑战中的用户完成任务时,我希望能够告知,以便跟踪用户的进度。如何存储完成挑战任务的多个用户的最佳方式

我想在pivot表中添加一个名为
user\u completed
json
列来处理这个问题,并为每个完成挑战任务的用户存储
user\u id

所以挑战任务看起来像

challenge_id | task_id | user_completed

这是个好办法吗?或者有更适合这个的吗

如果要为数据编制索引,我不推荐使用Json,因为Json无法编制索引。
我认为您也应该在用户和任务之间创建一个透视表,并创建必要的关系。

我不建议您在一个数据库列中插入多个值


注意:这是我的意见。只是分享我使用它的方式。

一个名为tasks\u settings的表,其中包含任务设置

我觉得这种方式很灵活,因为我总是可以轻松地编辑标题、描述和奖励。我还可以在这里添加另外两个字段,它们分别是有效的和有效的。因此,您可以使其在一段时间后过期,并且仅适用于特殊级别的人员或所有用户

另一个名为users\u tasks的表

这一个控制着用户。他们是否完成了任务。这也可以实现你所期待的

id | challenge_id | task_id | username | user_completed

我希望这对你有帮助

我建议使用如下数据库结构:

challenge: challenge_id | other data
task: task_id | other data
user: user_id | other  data

challenge_task: challenge_task_id | challenge_id | task_id 
               | possibly more data (such as deadline for completion)

challenge_task_users: challenge_task_id | user_id
                     | possibly more data (such as status: accepted, in progress, completed)

“一个db列中有多个值”几乎总是一个坏主意。@uEERDO如果一个挑战只有两个用户,那么我应该像透视表上的
user\u a\u completed
user\u b\u completed
列一样,添加
user\u id
,当用户完成挑战时,每次只需新建一行。不需要在一行中存储多个用户id。您可以在MySQL中使用超过某个版本(不记得数字)的
json
列,但根据我的经验,这更多是一种阻碍而不是帮助。查询
json
列有点混乱,Laravel还没有真正支持,它们带来的任何好处都很快被其他问题所取代,等等。雄辩的模型/关系系统在查询/返回具有一对多或多对多关系的结果时,还可以奇迹般地降低复杂性。最后,由你决定。正如乌伊尔多和布莱恩·格拉兹所说