我正在开发一个在线网站(使用Django和Mysql)。我有一个测试表和用户表。
我在表格中有50个测试,每个用户按照自己的节奏完成测试。 如何在我的数据库中存储测试的状态?
我想到的一个想法是在User表中创建一个额外的列。该列包含由逗号或任何其他分隔符分隔的testid。
userid | username | testscompleted 1 john 1, 5, 34 2 tom 1, 10, 23, 25
另一个想法是创建一个单独的表来存储userid和testid。所以,我只有2列,但只有数千行(没有测试*没有用户),它们总是会继续增加。
userid | testid 1 1 1 5 2 1 1 34 2 10
答案 0 :(得分:0)
您的第二个选项非常受欢迎...您的第一个解决方案会因为尝试在单个字段中存储多个值而导致normalization rules中断,这会让您头疼。
第二个表不仅在尝试添加或删除值时更容易维护,而且由于您能够有效地索引这些列,因此也可能表现得更好。
答案 1 :(得分:0)
有两个短语应该自动取消任何数据库设计理念。
单独的桌子,两列 - 你在那里正确的轨道。