我有一个基本上是一个大表单的应用程序,但该表单的一个页面是可变的,具体取决于用户的选择。大约有50个不同的页面,每个页面都有一个特定的列表和可能的用户输入数量。
由于我想将数据存储在SQLite数据库中,我该如何处理?我应该为每个可能的输入创建列,并且只在未使用的字段上存储任何内容吗?或者是否可以使数据库适应所存储的数据?
答案 0 :(得分:2)
这里没有太多内容,但我会说为表单创建一个表,为每个页面创建一个表,并为每个一对多列表创建一个表。
例如,发票需要两张表;一个用于发票,另一个用于发票行项目。 “备忘录”或“客户”记录可能包含所有发票。
在第一个表中创建FormID
主键,在Pages
表中创建一个外键。在这些表中创建"Page[n]ID"
个外键,其中包含您需要附加到相关页面的事项列表。
答案 1 :(得分:1)
考虑您在查询中实际需要使用哪些字段。希望这个集很小或至少可以管理。对于其余字段,将它们存储在单列中。例如,作为键值对的JSON字符串。
不,关系数据库无法“适应”变量列。您唯一的其他选择是按照建议为每个可能的字段定义一列。然而,这样做不仅开始时会很麻烦,而且维护将成为一场噩梦,因为这些形式将来会被修改。