这是数据库规范化的一个很好的尝试吗?
我有一个数据库,其中包含根据分数分类的不同类型伤害的人。例如,有如下测试:
承认疼痛、出院疼痛、家庭疼痛
承认记忆、释放记忆、家庭记忆
这些测试中的每一项都是 1-7。现在我的表格设置如下:
主表
first name, last name
SSN
address
etc.
pain FK (foreign key)
memory FK (foreign key)
疼痛表
autonum PK
admit
discharge
home
内存表
autonum PK
admit
discharge
home
这是否正确标准化?或者我应该有入院、出院和回家的表格以及这些表格的疼痛和记忆部分吗?
I have a database dealing with people who have had different types of injuries categorized based on a score. For instance, there are tests like below:
admit pain, discharge pain, home pain
admit memory, discharge memory, home memory
Every one of these tests goes 1-7. Right now I have my tables set up like this:
Main table
first name, last name
SSN
address
etc.
pain FK (foreign key)
memory FK (foreign key)
Pain table
autonum PK
admit
discharge
home
Memory table
autonum PK
admit
discharge
home
Is this correctly normalized? Or should I have tables of admit, discharge and home with pain and memory parts of those tables?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
现有结构的问题在于,对于每位患者,疼痛表中只能有一个条目,内存表中只能有一个条目。我的猜测是这些测试将运行多次。也许还允许进行额外测试的替代结构可能如下所示:
主表
自动PK
名字
姓氏
社会安全号
地址
等
测试结果表
自动PK
日期
患者 ID(FK 到主表)
测试类型 ID(测试表的 FK)
测试结果
测试表
自动PK
测试名称
如果每次测试都需要额外的数据,则必须对该设计进行一些修改。但根据您的问题,这将允许您存储每个人的多个测试和测试结果
The problem with your existing structure is that you can only have one entry in the pain table and one entry in the memory table for each patient. My guess is that these test will be run multiple times. Perhaps an alternate structure that would also allow for additional tests might look something like this:
Main Table
autonum PK
first name
last name
SSN
address
etc.
Tests Results Table
autonum PK
Date
Patient ID (FK to main table)
test Type id (FK to tests table)
test result
Tests Table
autonum PK
Testname
If you need additional data on each test this design would have to be modified a bit. But based on your question this will allow you t store multiple tests and test results for each person
Pain 和 Memory 表不是同一个记录类型的表吗?
测试表
测试类型表
Aren't the Pain and Memory tables the same table with a record type?
Test table
Test Types table