database - 我应该使用 "RecordID"作为列名吗?

标签 database database-design

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

在超快的服务器上只有几千条记录,所以我想把注意力集中在表和关系的可读性上,而不是在我生病之前去规范化时我可以节省多少处理能力.

以下是我认为我应该如何命名和构建表格。你能确认这是最易读的方法吗?过去,我有效地做到了这一点。但是,我想看看是否有一些简单的改进或想法可以整合。从一到十,这种表/列命名方法的可靠性如何?

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  

最佳答案

我总是将我的 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 相关联,这样您就可以确切地知道答案是在哪个部分做出的。

我希望我的提议很清楚。

关于database - 我应该使用 "RecordID"作为列名吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5248816/

相关文章:

数据库设计 : Join table with extra column or, 两个连接表

mysql - MySQL首先执行什么: The `WHERE` clause or the `ORDER BY` clause?

database - SQLite 是否适合用作相当大且安全的数据存储?

java - 没有这样的表..当我在 android eclipse 中修改表时

php - redis lua 脚本调用 redis.call ("ZREVRANGE", KEYS[1], start, end, 'WITHSCORES' )

ruby-on-rails - ~44 列对于模型来说太多了吗?打破一对一的关系有意义吗?

sql - 数据库设计和非数字主键的使用

python - 使用 python 和 MySQLdb 将多个字典对象插入到 MySQL 数据库中

sql - 重构字段的外键

sql - 从数据库中删除记录或只是在读取期间隐藏它们?