我有一步一步的向导。用户可以完成多个会话中的步骤,我需要记录用户完成哪些步骤。步骤顺序可能并不重要。用户可以完成步骤4,然后完成步骤3.但是我必须确保用户每个步骤至少处理一个步骤。当用户处理完所有步骤后,向导将被标记为已完成。我有以下表格
WizardBase
WizardID, userID
Step1 Table
.......
Step2 Table
.......
and so on
我想到的一个选项是每个步骤都有一个向导表中的位,当用户完成步骤时,该位将变为真,如下所示
WizardBase
WizardID, userID,IsStep1Done,IsStep1Done,...
任何更好的建议。我有最多的步骤
答案 0 :(得分:0)
如果您记录的每一步的唯一内容是它是否已完成,那么您真的无法证明将每一步都转换为自己的行,更不用说它自己的表了。如果步骤数量非常稳定,则尤其如此。
另一方面,如果您在每一步都记录了几个事实,并且如果这些事实特定于每个步骤,那么为每个步骤设置不同的表是一个合理的选择。
另一个选项,特别是如果您需要表格驱动步骤的规则,将是实体 - 属性 - 值(EAV)结构。但是,您不应该使用EAV,除非您对架构灵活性(表驱动规则)的需求超出其他设计考虑因素。