 |
|
สมมติว่าตารางรวม(Table A)ซึ่ง PK(Composite key)=รหัสนิสิต,รหัสโครงการ,ลำดับคำถาม
(รหัสนิสิต,ชื่อ,นามสกุล,รหัสโครงการ,ชื่อโครงการ,ลำดับคำถาม,รายละเอียดคำถาม,คะแนนความพึงพอใจ,รหัสผู้ใช้ระบบ,Username, Password,สถานะผู้ใช้ระบบ,คำถามกันลืม Password,คำตอบกันลืมPassword)
แล้วทำการทำ Normalization ระดับที่ 2 แยกตารางใหม่ที่ non-key ขึ้นกับบางส่วนของคีย์ผสม
ได้ตารางดังนี้
Table B ***** PK = รหัสนิสิต
(รหัสนิสิต,ชื่อ,นามสกุล)
Table C PK = รหัสโครงการ
(รหัสโครงการ,ชื่อโครงการ)
Table D PK = ลำดับคำถาม
(ลำดับคำถาม,รายละเอียดคำถาม)
Table A -> Table E PK(Composite key)=รหัสนิสิต,รหัสโครงการ,ลำดับคำถาม
(รหัสนิสิต,รหัสโครงการ,ลำดับคำถาม,คะแนนความพึงพอใจ, รหัสผู้ใช้ระบบ,Username, Password
,สถานะผู้ใช้ระบบ,คำถามกันลืม Password,คำตอบกันลืมPassword)
แล้วทำการทำ Normalization ระดับที่ 3 แยกตารางใหม่ที่ non-key ขึ้นกับ non-key
ได้ตารางดังนี้
Table F
(รหัสผู้ใช้ระบบ,Username, Password,สถานะผู้ใช้ระบบ,คำถามกันลืม Password,คำตอบกันลืมPassword)
Table E -> Table G
(รหัสนิสิต,รหัสโครงการ,ลำดับคำถาม,คะแนนความพึงพอใจ,***รหัสผู้ใช้ระบบ***)
สิ่งที่จะถามคือ
1.จำเป็นไหมค่ะว่าต้องมีฟิวด์***รหัสผู้ใช้ระบบ***อยู่ใน Table G
คือในชีสที่เรียน จะมีการทิ้งฟิวด์ที่ถูกนำไปตั้งเป็น pkของตารางใหม่(Table F)ไว้ แต่ดูแล้วหน้าตาตารางมันแปล่งๆ หน่ะค่ะ
2.และ ใน Table B สามารถเขียนได้เป็น (รหัสนิสิต,ชื่อ,นามสกุล,รหัสผู้ใช้ระบบ) ซึ่งต้องการให้รหัสผู้ใช้ระบบเป็นFK ไปยัง Table F
ได้ไหมค่ะ ตามทฤษฎีแล้วสามารถทำได้ไหมค่ะ คือต้องเขียนการออกแบบฐานข้อมูลแบบ NF ให้อาจารย์ดูหน่ะค่ะ
3.หากทำไม่ได้ ตารางไหนควรแก้ให้มีหรือไม่มีฟิวด์ไหนค่ะ ขอบคุณค่ะ
Tag : PHP
|
|
 |
 |
 |
 |
Date :
2010-08-08 23:37:19 |
By :
nuie |
View :
1991 |
Reply :
1 |
|
 |
 |
 |
 |
|
|
|
 |