【问题标题】:Best MySQL schema for an app that requires dynamically-built forms?需要动态构建表单的应用程序的最佳 MySQL 架构?
【发布时间】:2011-09-04 08:58:51
【问题描述】:

我正在为一家在现场记录数据的公司制作 Web 应用程序。

他们需要能够创建自己的表格,然后技术人员将在工作地点的现场填写这些表格。每个工作地点都不同于下一个,因此公司需要能够随意创建新表格。

数据可以是文本或数字,并且是网格状的——比较不同的设备,例如:

作业现场 1 的报告 #234

            设备A 设备B 设备C
条件一般 良好 优秀
AZ425 级别 100 (ml) 84 (ml) 75 (ml)
运行时间 134(小时) 400(小时) 50(小时)
评论 供应 XX 即将耗尽。

==============================

作业现场 2 的报告 #3

            坦克A 坦克B
G00 等级 40% 10%
重量 500(公斤) 1000(公斤)
酸碱度 8.12 1.35
Visual Ins Tank A 底部附近有裂缝

我打算使用 CakePHP/MySQL

对于这种情况最好的 MySQL 模式是什么(或者 XML 更有意义)?

这是我目前正在使用的:

表格'表格'
列:id、ref_number、job_site (fk)、description、creation_date

表'Form_Controls'
Cols:id、form_id (fk)、类型(文本、数字、选择)、选项(如果类型为“选择”,则下拉列表的序列化数据)、公制(小时、毫升、公斤等)

表'Form_Instance'
列:id、form_id (fk)、technical (fk)、creation_date

表'Form_Data'
cols:id、control_id(fk)、instance_id(fk)、value、比较器(EquipmentA / EquipmentB等)

对于这种情况,这是最有效的模式吗?

【问题讨论】:

  • Entity-Attribute-Value (EAV) 是最灵活的,但除非绝对必要,否则最不愿意使用它。我也会反击,要求真正的要求......

标签: php mysql cakephp database-schema


【解决方案1】:

看起来Entity-Attribute-Value pattern 在这里可能会派上用场。它可以很容易地在 MySQL 等数据库中建模

【讨论】:

    【解决方案2】:

    这听起来像是键值对或面向文档的数据存储可能更好的东西。有many so-called NoSQL databases to choose from,但也许MongoDB 可能是一个不错的起点。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-07
      • 2015-06-25
      • 2011-07-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多