我应该使用“RecordID”作为列名吗?

时间:2011-03-09 16:26:23

标签: database database-design

我正在创建一个包含五个部分的在线应用程序。每个部分都有自己的表格。我们将这些部分称为SECTION1,SECTION2等。将有一个名为APPLICATIONS的主表。该表中的第一列将是ApplicationID。

超高速服务器上只会有几千条记录,所以我想把注意力集中在桌子和关系的可读性上,而不是在我去除标准化直到我生病的情况下我可以节省多少处理能力

以下是我在思考如何命名和构建表格。你能否证实这是最易读的方法?在过去,我有效地做到了这一点。但是,我想看看是否有一些简单的改进或想法进行整合。在1到10的范围内,这种表/列命名方法有多扎实?

APPLICATIONS - TABLE  
ApplicationID - pk  

SECTION1 - TABLE  
RecordID- int - pk  
ApplicationID - fk  
Answer1 - text  
Answer2 - text  

SECTION2 - TABLE  
RecordID- int - pk  
ApplicationID - fk  
Answer1 - text  
Answer2 - text  

3 个答案:

答案 0 :(得分:2)

我总是将我的id列命名为id,前缀的表名足以知道我正在谈论的id。

在另一个主题中,您的SECTION表似乎具有完全相同的结构,为什么不使用只有一个number列的表或类似的东西?

回复评论

SECTION
id - pk
ApplicationID - fk
name

QUESTION
id - pk
text

SECTION_QUESTION
id - pk
SectionID  - fk
QuestionID - fk

ANSWER
id - pk
SectionQuestionID - fk
text

通过这种方式,您可以创建各种问题,甚至可以在各个部分之间分享一些问题。 SECTION_QUESTION关联表映射问题和部分之间的关​​系。然后,您将答案存储到与ANSWER而不是SECTION_QUESTION相关联的QUESTION,这样您就可以确切地知道答案的哪个部分。

我希望我的主张是明确的。

答案 1 :(得分:0)

首先,为什么你将section1和section2作为两个不同的表?您可以使用添加列sectionIDsectionTitle将它们合并到单个表中。

然后,您的sectionID将在表格中显示,并且您无需根据您的设计使用列RecordID

根据我对你问题的理解,除非你有任何特定的理由要保留section1和section2表。

编辑 - 来自@Oded的答案要好得多。

答案 2 :(得分:0)

我会选择这种结构:

Records - TABLE  
RecordID- int - pk  
SectionID int - fk
ApplicationID - fk  
Answer1 - text  
Answer2 - text  

Sections - TABLE
SectionId int - pk
SectionSequence int

您正在复制结构 - 如果此更改(例如您需要添加列),则需要应用更改为多个表。 DRY也适用于数据库。