我有一个名为ActivityRecording的表。该表目前有500,000条记录。我需要添加许多与activityrecording表相关的新输入。活动记录与这些新输入字段的关系是1到0,1。
因此,屏幕上会发生的事情是,当用户填写ActivityRecording数据时,他将被带到一个新页面,此页面将根据用户的输入(来自名为服务的下拉列表)显示活动记录中的表单。将有6种不同的形式(每种形式将有7-8个输入,其中包括大小为5kb的textareas,文本框和复选框)。因此,对于一个活动记录,用户将填写6个表格中的一个。
我知道有两种方式(可能有更多),我可以设计数据结构:
将所有这6个表单中的所有输入添加到activityrecording表中。因此,属于这些表单中的5个的列在此表中将为空,只有属于其中一个表单的列才具有值
另一种方法是添加6个新表(每个表单一个),并在activityrecording表中添加6个外键列。因此,在6个外键中,5个将为null,其中一个实际上将指向表
哪种方法是更好的数据结构设计?请注意,此表中的行数为500,000,预计现在会以更快的速度增长。
答案 0 :(得分:3)
表单和用户界面与声音数据库设计无关。
遵循普通表格等基本设计规则,并了解您尝试存储的数据的基本属性。几乎没有关于你问题中数据的信息 - 这些都与表格有关!因此,不可能对特定设计给出一个好的答案。
答案 1 :(得分:2)
你应该问自己:“如果我还需要一个表格,会发生什么。” (你必须创建一个新表)。在我看来,第一种方法会更好,因为我不喜欢创建新表(你必须更新你的linq类等)。
还有第3个,为表单创建一个表并将它们链接到输入表。 表单1 ----- n输入
答案 2 :(得分:2)
你错过了另一种选择。
对ActivityRecording表没有任何更改。外键字段 ActivityRecording中的每一个 补充表