0

基本上,我和我的小组必须为低至 3NF 的用户视图创建规范化,现在所有用户视图都用于 Seneca College Daycare,总共有 5 个用户视图,每个都与许多事情有关,但主要是用户视图 1 -4 是关于孩子、父母和工人的,用户视图 5 是付款表格。

例如:用户视图 1

        CHILDREN
NAME    OHIP#      DATE OF BIRTH       ALLERGY(S)   TYLENOL PERMITTED
Kevin   5334447772  Nov 2, 1999    Penicillin, Egg      Yes
Mary    4333445355  Sept 4, 1997    Egg                 Yes

我们的 3NF 归结为(我的搭档做了什么)

表格 [ F_ID, Campus, Sign, DateP]

注册 [R_ID, L_Name, F_Name, Relation, Apt, PosC, Hphone, Wphone, E_Call, OHIP]

Addr [PosC,地址,城市]

FormReg [F_ID, R_ID, 日期]

RegOAA [R_ID,OAA_ID,关系]

OAA [OAA_ID、F_Name、L_Name、HPhone、WPhone]

儿童 [OHIP、L_Name、F_Name、出生、过敏、泰诺]

用户视图 2

http://i.imgur.com/4yEkqvZ.jpg?1 (太多细节无法粘贴在这里,所以我上传了 prnt scrn)

现在我下来的3nf是

3NF
ChildDetail [Campus, Child#, ChildName, ChildBday, Allergy]
Manager [Manager#, Manager]
Supervisor [Supervisor#, Supervisor]
Worker [ChildWrkrs#, ChildWrkrs]
Family [Fam#, FamPhone#]

但是,我的伙伴说我们仍然应该使用他从 Userview 1 中提出的 OHIP 主键

他想出了这个

StaffAssign [校园、经理 ID、L_Name、F_Name]

房间 [RoomNum, RDescript]

Room_Staff [校园,RoomNum, Staff_ID, OHIP]

工作人员 [Staff_ID, L_Name, F_Name, Occupation]

儿童 [OHIP, L_Name, F_Name, Allergie, Birth, F_ID, E_Call]

现在,根据我的理解,如果我的理解是正确的,我们不能使用用户视图中不存在的属性,对吧?所以从用户视图 1 中获取 OHIP 并将其添加到用户视图 2 应该不起作用,对吧?

我们一直在讨论这件事,不幸的是我们无法联系到我们的教授,所以我希望有人能在这里提供帮助。

谢谢你。

4

1 回答 1

0

所以我发现是可以的,只要满足一定的条件。

如果你有来自不同用户视图的属性,只要主键相同,它们就可以被合并。这成为一个累积设计。

此类条件的一个示例如下:

1ST USER VIEW – OLD CUMULATIVE DESIGN

Part[Part#, description, unit_price, qty_on_hand]
Order_part[Order#, part#, sold_quantity, sold_price]
FK  order#  order
FK  part#  part

ORDER[order#, ordDate, cust#]
FK  cust#  customer
CUSTOMER[Cust#,  cName]

NEW CUMULATIVE DESIGN

PART[Part#, description, class, price, qty_on_hand]
CLASS[Class, class_desc]
ORDER_PART[ Part#, order#, quantity,  quotedPrice]
ORDER[ ord#,  ordDate, cust#]  
CUSTOMER[cust#, cName, street, city, zip, prov, country, balance, creditLimit, rep#]
REP [Rep#, rName, com_perct]

正如您在示例中看到的那样,PART 字段具有相同的数据,但是,在新设计中,您将看到“类”作为附加条件。没关系,因为在额外的用户视图中,Parts 表有一个额外的属性定义为“类”,主键没有改变,所以我们所做的就是将旧设计与找到的新信息合并,并创建一种新的累积设计。

所以只要满足条件,“转移/使用”或者说合并,就可以将前一个用户视图的属性合并到另一个用户视图中(只要它们是相关的,并且主键相同)。

编辑 另外,只是为了做一个说明,即使用户视图中不存在它们,您也可以创建自己的属性。

例如,您正在填写表格,有很多标准可以使用,但是该表格可以提交到许多位置,并且每个位置都可以使用,只要您在那里注册,您就可以创建一个属性这将允许您跟踪每个表单,例如“registration_id”。

于 2013-10-23T23:25:13.507 回答