【发布时间】:2011-01-31 05:51:36
【问题描述】:
我试图在 ASP.net 中为反馈应用程序创建一个数据库,我有以下数据库设计。
Username (PK)
QuestionNo (PK)
QuestionText
FeedbackNo (PK)
Username
UserFeedbackNo (PK)
FeedbackNo (FK)
QuestionNo (FK)
Answer
Comment
用户拥有唯一的用户名 一个用户可以有多个反馈
我想知道我这里的数据库设计是否规范化并适合应用程序
编辑 - 一个反馈有多个问题,因此会有多个反馈答案。希望这是有道理的
编辑 - 我在反馈表中有 20 个问题,每个问题都可以使用单选按钮来回答(因此是“答案”字段),并且可以将可选的 cmets 添加到每个问题中。用户可以根据需要多次填写此反馈表。这就是为什么我有包含 feedbackNo 和用户名的链接表的原因。
编辑
**Users Table**
UserID (PK) autonumber
Username
**Question Table**
QuestionID (PK) autonumber
QuestionNumber
QuestionText
**Questionnaire Table**
QuestionnaireID (PK) autonumber
UserID (FK) `User Table`
Date
**Feedback Table**
ID (PK) autonumber
QuestionnaireID (FK) `Questionnaire Table`
QuestionID (FK) `Questions Table`
Answer
Comment
阅读完 cmets ... 我是否会重新设计我的设计,这个新设计是否适合我的需求?
【问题讨论】:
-
为什么 20 个反馈问题不只是在问题表中?可能 QuestionType='F'??
-
您的第三组编辑对我来说看起来不错。
-
@Phil,第三次编辑和我原来的帖子几乎一样,唯一的区别是我在问卷表中添加了一个日期字段,并且我已经重命名了一些字段! @KM,我不太明白你的意思
-
我认为您的原始设计接近正确,正如我在完整答案中所说的那样。您确实在第三次编辑中更正了自然/代理键问题和最终表/字段名称(“UserFeedbackNo”)。
-
据我了解您的需求,看起来不错。
标签: asp.net sql database-design normalization