将检查表结果存储在MySQL中

时间:2017-07-27 07:15:18

标签: php mysql sql database

我一直绞尽脑汁,但仍然无法想出解决方案。

我正在为清单Web应用创建数据库。基本上,创建并完成了一个清单,其中包括“完成”和“完成”的选项。或者“不完整”,然后会生成一份报告,显示哪些项目未完整。

目前,有一个表格可用于检查清单'它包含许多核对表项目'。清单的结果(无论是完整还是不完整)都应存储在名为“报告”的表格中,但这是我需要帮助的地方。这是因为我需要存储它们是否标记为完整且不完整,并且每个清单都有不同的长度。

一种可能的解决方案是简单地存储每个“检查表项目”的唯一ID。这不是一个可以存储在' Report'中的字符串,每个ID都用逗号分隔。然后可以使用PHP' explode'提取每个ID。功能,这可能会奏效。但是,我不认为这是最优雅的解决方案,因此我们非常感谢您对更好解决方案的任何帮助。

编辑(重要):每日完成核对表,并且报告旨在长期存储。因此,添加一份报告'每个项目的字段都不起作用。

2 个答案:

答案 0 :(得分:2)

您的问题需要不同的设置:

  • 检查表(id,清单名称,......)
  • 清单项目表(checlistId,itemId,title,...)

现在,您可以为每个核对清单或每个checklistitem添加一个新表。但对我来说,上述每个表(TRUE或FALSE)的简单字段应该足够了。

修改

阅读评论后,表格报告应包含以下字段   - itemId  - 用户身份   - (当项目可以链接到多个核对清单时,可选checklistId)   - (完成总是如此)

问题仍然存在:完成后将项目添加到核对清单的内容。 更好的解决方案是为正在进行的清单添加表(与启动它的用户)以及指向当前已完成项的链接。

答案 1 :(得分:0)

我在公司软件(php框架内置)中实施了一个清单。它只是一个对象的基于字符串的属性checklist。在那里我保存了一个JSON格式化的字符串,表示带有复选框元素的数组。每个元素本身也是一个包含checked(布尔值1或0)和label(实际复选框标签文本)的数组。这对我有用,也可能对你有帮助:)看看jsonencode() / jsondecode()

要对它们进行排序,只需添加另一个元素sort