如何制作 Laravel 动态数据 table?
How can I make a Laravel dynamic data table?
我正在编写一个新的 CRM。我将在 table 中显示项目数据。
我的目标是拥有现有 table 的灵活结构。举个例子,table的列名要改、增、删。我如何制作灵活的 table 结构作为示例?
你有几种方法,我将列出 2 种适用于 SQL 数据库的方法:
- 创建一个稀疏
meta storage
,您将在其中存储元组(行、列)及其值。这样做的缺点是 table 不会在物理上存在,任何后续的查询或关系使用都会变得复杂
- 使用
metadata
table 来保存 CRM 的动态结构 table 和物理 table 来保存值。一旦 metadata
table 中的数据更新,您将需要更改物理存储(table)以匹配新结构。这种方法的缺点是物理存储中的更改可能非常缓慢甚至损坏数据。例如,如果用户决定将列从 TEXT 更改为 INTEGER,您将丢失该列中无法转换为整数的所有值。
我建议你使用一些解决了这个问题的已知 ORM(对象关系映射)库,并专注于最终用户需要的功能。
在非sql 解决方案的情况下,您可能决定将 table 存储在动态结构中(如 json),但是这样的 [= =28=]可以成长。
我正在编写一个新的 CRM。我将在 table 中显示项目数据。 我的目标是拥有现有 table 的灵活结构。举个例子,table的列名要改、增、删。我如何制作灵活的 table 结构作为示例?
你有几种方法,我将列出 2 种适用于 SQL 数据库的方法:
- 创建一个稀疏
meta storage
,您将在其中存储元组(行、列)及其值。这样做的缺点是 table 不会在物理上存在,任何后续的查询或关系使用都会变得复杂 - 使用
metadata
table 来保存 CRM 的动态结构 table 和物理 table 来保存值。一旦metadata
table 中的数据更新,您将需要更改物理存储(table)以匹配新结构。这种方法的缺点是物理存储中的更改可能非常缓慢甚至损坏数据。例如,如果用户决定将列从 TEXT 更改为 INTEGER,您将丢失该列中无法转换为整数的所有值。
我建议你使用一些解决了这个问题的已知 ORM(对象关系映射)库,并专注于最终用户需要的功能。
在非sql 解决方案的情况下,您可能决定将 table 存储在动态结构中(如 json),但是这样的 [= =28=]可以成长。