【发布时间】:2015-01-03 02:30:56
【问题描述】:
作为家庭作业的一部分,我被要求根据案例研究创建表格,并且所有表格都必须符合 3NF。然而,我已经尝试并试图理解 3NF,但我只是没有掌握它的窍门,希望能得到一些帮助。
案例研究的要求是针对兽医诊所的:
- 允许宠物预约预约
- 记录宠物治疗
- 记录哪位兽医进行了治疗
- 记录企业销售的商品,以提供信息,使企业能够生成库存清单以从供应商处购买
不需要:记录所有销售情况
到目前为止,我有以下表格:
员工:
| staff_ID | firstName | lastName | gender | address_ID | contactNumber | partTimeOrFullTime | salary |
员工地址表:
| address_ID | staff_ID | number | street | city | county | postalCode |
兽医桌:
| staff_ID | appointment_ID |
兽医护士:
| staff_ID | appointment_ID |
约会表:
| appointment_ID | customer_ID | staff_ID | patient_ID | date | time |
initial_appointment 表:
| appointment_ID | customer_ID | patient_ID | diagnosis | treatment |
followUp_appointment:
| appointment_ID | customer_ID | patient_ID | diagnosis | treatment |
患者:
| patient_ID | customer_ID | animal_type | gender | weight | height | previous_Appointments | previous_Treatment |
产品:
| product_ID | name | product_Category | animal | price | quantity_Available | reOrder_Level |
product_sold:
| sale_ID | product_ID | sale_Date |
供应商:
| supplier_ID | product_ID | contactNumber | email |
供应商地址:
| supplierAddress_ID | supplier_ID | doorNumber | street | city | town | postalCode |
库存:
| name | product_ID | quantity_Available | price |
谢谢!
【问题讨论】:
-
只是一个提示:我会尝试更好地格式化它。这是一个很长的问题,很难过滤。
-
对于声称不了解规范化的人来说,这是一个非常好的努力!但是,将 customer_id 存储在客户表和患者表之外的任何位置都是多余的。日期和时间应存储为单个实体。此外,没有单独的表格用于初始和后续。如果不仅仅是患者的首次就诊是他们的初次就诊,则将标志 (0/1) 存储在一个单独的列中,指示“初次”就诊。
-
在我为此制作的 EERD 中,我们被要求对泛化/专业化建模,我是否这样做了,预约既可以是初次预约,也可以是后续预约。我不应该为他们做单独的表格吗?
-
@h21 他们仍然只是约会,不是吗?
-
所有地址都可以放在一张表中。跟进和初次约会看起来是一回事,所以可以放在一张桌子上。只需添加另一列来说明它是什么类型。
标签: mysql database normalization normalize 3nf