Database design 不同用户视图中的属性是否可以多次使用?

Database design 不同用户视图中的属性是否可以多次使用?,database-design,relational-database,normalization,Database Design,Relational Database,Normalization,基本上,我和我的小组必须为用户视图创建一个标准化,直到3NF,现在所有的用户视图都是针对塞内卡学院日托中心的,总共有5个用户视图,每个都与许多事情有关,但用户视图1-4主要是关于孩子、家长和员工的,用户视图5是付款形式 例:用户视图1 CHILDREN NAME OHIP# DATE OF BIRTH ALLERGY(S) TYLENOL PERMITTED Kevin 5334447772 Nov 2, 1999 Penicillin

基本上,我和我的小组必须为用户视图创建一个标准化,直到3NF,现在所有的用户视图都是针对塞内卡学院日托中心的,总共有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、校园、标志、日期]

寄存器[R_ID、L_名称、F_名称、关系、Apt、PosC、Hphone、Wphone、, E_呼叫,OHIP]

地址[邮政编码、地址、城市]

FormReg[F_ID,R_ID,日期]

RegOAA[R_ID,OAA_ID,Relation]

OAA[OAA\U ID、F\U名称、L\U名称、HPhone、WPhone]

儿童[OHIP,L_姓名,F_姓名,出生,过敏,泰诺]

用户视图2

(细节太多,无法粘贴到此处,因此我上传了prnt scrn)

现在我要说的第三个F是

3NF
ChildDetail [Campus, Child#, ChildName, ChildBday, Allergy]
Manager [Manager#, Manager]
Supervisor [Supervisor#, Supervisor]
Worker [ChildWrkrs#, ChildWrkrs]
Family [Fam#, FamPhone#]
然而,我的合作伙伴说,我们仍然应该使用他从Userview 1中提出的OHIP主键

        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
他想出了这个

StaffAssign[校园、经理ID、L_姓名、F_姓名]

房间[RoomNum,RDescrip]

房间员工[校园,房间编号,员工ID,OHIP]

员工[员工ID、L_姓名、F_姓名、职业]

儿童[OHIP、L_姓名、F_姓名、过敏、出生、F_ID、E_呼叫]

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

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


谢谢。

所以我发现这是可能的,只要满足某些条件

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

此类条件的示例如下所示:

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字段具有相同的数据,但是,在新设计中,您将看到“class”作为添加的标准。这没关系,因为在一个附加的userview中,Parts表有一个定义为“class”的附加属性,主键没有更改,所以我们所做的就是将旧设计与找到的新信息合并,并创建一个新的累积设计

因此,只要满足条件,“传输/使用”或者更确切地说是合并,就可以将属性从以前的userview转换到另一个userview(只要它们相关,并且主键相同)

编辑 另外,为了便于说明,您还可以创建自己的属性,即使这些属性在Userview中不存在

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