我的应用程序允许用户(管理员)设计自己的表单,每个表单都有一个相应的表来存储该信息.因此,无论何时创建表单,我都需要根据其输入类型和可能的值在数据库中为该表单生成一个表.
可以使用$this->Model->query('create table ....')方法创建表,但有一点我无法弄清楚,我将如何为相应的表生成模型?
任何有关这方面的帮助将不胜感激.
您不应该创建自修改应用程序.如果仅从优化的角度来看,这将很快成为一个令人头痛的问题.比动态修改数据库更糟糕的是动态生成模型.不要这样做.
如果您的目标是创建允许用户创建表单的应用程序,则必须创建一个元数据应用程序,该应用程序将有关表单和模式的信息存储为数据库中的数据.
id | form_id | field_name | field_type | length | ...
---+---------+------------+------------+--------+----
1 | 42 | firstname | string | 255 | ...
2 | 42 | lastname | string | 255 | ...
...
Run Code Online (Sandbox Code Playgroud)
基于这些元信息,您需要动态创建实际表单,并在数据库中以类似的元方式存储输入数据.
除非您尝试制作phpMyAdmin 数据库管理克隆,否则这是唯一现实的方法.如果您正在尝试创建数据库管理应用程序,则不会动态创建模型,而只需使用一个数据库操作模型,该模型几乎可以完成所有操作$this->query().
无论哪种方式,您都在创建元应用程序,这通常是一个坏主意.您正试图将程序员(设计和创建数据库和表单)的工作交给用户,这将不可避免地造成更糟糕的工作.这当然只是我的拙见,我不知道你的商业案例.
| 归档时间: |
|
| 查看次数: |
998 次 |
| 最近记录: |