我正在研究数据库模型,我需要解决的一个领域是客户端可配置的核对表。理想情况下,客户端会有一组预定义的清单,然后我可以将其作为位列输入。唉,这不会发生。客户希望能够添加和分组清单,以便它们可以重复使用。
我可以使用EAV类型模型并使用字符串表示“真/假”,但我之前一直走在这条路上,宁愿不再重新开始这段旅程。
欢迎任何想法或建议。感谢。
答案 0 :(得分:2)
“客户端可配置”几乎总是意味着EAV。 EAV的商店数据很好...它只是让数据退出就是诀窍。
- )
另一个......不那么令人反感的方法是制作通用列。 Answer1 BIT,Answer2 BIT,Answer3 ...
如果您这样做,那么创建一个表格,您可以在其中定义列的真实名称,以便为任何给定的检查列表构建正确的视图。
说第一个检查清单是
然后存储
CheckList_ID Answer_Number Column_Name
1 1 Tank has Gas
1 2 Wallet has Money.
然后视图将是:
SELECT Answer1 "Tank has Gas", Answer2 "Wallet has Money"
FROM Generic_Answer_Table
WHERE CheckList_ID = 1
显然如何动态生成视图。
缺点是,如果你包含10列,那么它们不能超过10列。
XML是另一种可能性,并没有遇到这个问题......但它并不像SQL友好。
答案 1 :(得分:0)
我认为XML将是为他们提供控制的最佳方式,同时保持复选框的动态。可能是每页/部分包含所有自定义复选框的XML文件。 XML的优点在于它易于使用并为您提供了极大的灵活性。在数据库级别,只需将复选框的输出保存为最终数据,以防复选框源XML更改,您仍将看到在数据库级别保存的最初选定值。
答案 2 :(得分:0)
我们正在为此目的构建http://tallyfy.com,尽管操作和数据库表之间的直接关系是新的。