我想要一些关于模型可以在通过关系访问的属性表中拥有的所有属性(使用 Laravel 关系)与将所有属性/设置存储在同一个表中但在 json 列中的反馈。
目前,我的应用程序有一个名为“设置”的属性表,它本质上也是多态的,因此多个模型可以在其中存储其属性。该表有如下列
key (string),
value(string),
type (string) - tells if the value is of string, integer, boolean, json type
这样我就不会将字符串发送到 javascript 前端,而是可以发送字符串、整数、布尔本机类型,以便更好地处理前端中的类型。在使用 php 函数将属性发送到前端之前,我会进行此转换,该函数根据类型将字符串值转换为 int、boolean、json 或 string。
这意味着如果一个模型有 40 个属性,所有属性都会存储在其自己的行中,因此创建一个模型会导致创建 40 行来存储它可能具有的所有属性。
现在,上面的方法与我只有一个 json 列的方法相比,我们可以将其称为设置,然后将所有这 40 个属性转储到那里。
使用 json 列方法可以赢得什么?我删除了一个表,并删除了每次执行一些查询时都需要加载到该模型上的额外关系。我还不必每次获取属性时都将它们转换为整数、布尔值、json 或字符串。 (记住上面的类型列)要记住这些属性不需要可搜索,我只需要它们来读取它们。我永远不会在查询中使用它们来返回基于这些属性的帖子。
使用哪一个更好,我正在构建一个 CMS 顺便说一句,你可以在这里看到它的实际效果:https://www.youtube.com/watch?v=pCjZpwH88Z0 https://www.youtube.com/watch?v=pCjZpwH88Z0