【发布时间】:2021-10-09 17:36:02
【问题描述】:
我想知道实现这一目标的最佳方法是什么。我需要存储一个数组,例如:
['hello', 'world', 'love']
在表格的一列内。我不想创建一个新表,其中数组中的每个值都成为单独的行。有没有更好的办法?我想我最关心的是性能。
因此,在为该列创建迁移时,理想情况下,我会插入一个具有 3 个默认/可为空值的数组。然后我可以在我的应用程序需要时为数组设置实际值。
简单场景:我有一个名为desk 的表,我想在桌面上存储 3 个项目,例如['pencil', 'ruler', 'stapler'],但我不想创建一个单独的表desk_items每个项目的行。希望这是有道理的。
使用 Laravel 和 MYSQL
谢谢。
【问题讨论】:
-
我不会为您完成所有工作,但我建议您查看以下内容: 1. 将数组作为 JSON 存储在数据库中。 2. Laravel 的属性“铸造”。
-
旁注。如果您关心的是性能,请记住,在该数组中查找具有特定元素的行的查询将比您将它们作为相关表中的行慢得多
-
是的,一直在阅读,hasMany 关系可能是最好的方式?
-
这取决于您的用例,但是对于将一行与一组特定于该行的值的简单关联,
hasMany关系是最好的方法。