佳礼资讯网

 找回密码
 注册

ADVERTISEMENT

查看: 1715|回复: 7

database ERD, 请帮忙

[复制链接]
发表于 2-10-2008 03:19 PM | 显示全部楼层 |阅读模式
我想画一个ERD

ExaminerType enum('Examiner', 'CoExaminer')
就是说,
Staff either become Examiner or Coexaminer at the same DateTime

+------------+--------+----------------+--------------------+----------+
| ExaminerID    | Name     | ExaminerType  | Date                      | Subject    |
+-------------+------+----------------+-------------------+---------+
| E123456          | Ali          | Examiner           | 20081001150000  | ABC123   |
+------------+---------+----------------+-------------------+------------+
| E123456          | Ali          | CoExaminer      | 20081001150000  | ABC123   |
+------------+---------+-------------+------------------+----------+


如图 error output
在同一个时间, Ali是不可在同一个DateTime (20081001150000)做两分功
ERD要会prevent this happen

只有一个entity而已 [EXAMINER]
如何写他的relationship


还有,
如何写Ali是不可在同一个semester(根据DateTime)
同时牵任同一个subject的Examiner 和Coexaminer
谢谢

[ 本帖最后由 晨天 于 2-10-2008 03:26 PM 编辑 ]
回复

使用道具 举报


ADVERTISEMENT

发表于 3-10-2008 04:27 PM | 显示全部楼层
原帖由 晨天 于 2-10-2008 03:19 PM 发表
我想画一个ERD

ExaminerType enum('Examiner', 'CoExaminer')
就是说,
Staff either become Examiner or Coexaminer at the same DateTime

+------------+--------+----------------+-------------------- ...


把 Name, ExaminerType , Date,Subject   set primary key 就可以了!
建议 name 换成 name_id,
因为 同样 Ali 可能是不同人来的!
回复

使用道具 举报

 楼主| 发表于 3-10-2008 10:16 PM | 显示全部楼层
原帖由 winmxaa 于 3-10-2008 04:27 PM 发表


把 Name, ExaminerType , Date,Subject   set primary key 就可以了!
建议 name 换成 name_id,
因为 同样 Ali 可能是不同人来的!


炸到
没想过set酱多primary key
好像会炸到老师沃。。。。。。

无论如何, 谢谢你
回复

使用道具 举报

发表于 3-10-2008 11:54 PM | 显示全部楼层
原帖由 晨天 于 3-10-2008 10:16 PM 发表


炸到
没想过set酱多primary key
好像会炸到老师沃。。。。。。

无论如何, 谢谢你


真确来讲是 ExaminerID  set primary key
然后Name, ExaminerType , Date,Subject   set unique itemfile:///C:/DOCUME%7E1/tan/LOCALS%7E1/Temp/moz-screenshot.jpg
回复

使用道具 举报

 楼主| 发表于 4-10-2008 12:06 AM | 显示全部楼层

回复 4# winmxaa 的帖子

对咯, 酱多primary key吓死人

你猜可不可以写relationship出来???

tq
回复

使用道具 举报

发表于 4-10-2008 12:16 AM | 显示全部楼层
原帖由 晨天 于 4-10-2008 12:06 AM 发表
对咯, 酱多primary key吓死人

你猜可不可以写relationship出来???

tq


relationship....
ExaminerType  set as foreign key from [EXAMINER]table 咯!
回复

使用道具 举报

Follow Us
 楼主| 发表于 4-10-2008 01:07 PM | 显示全部楼层
谢谢帮忙
回复

使用道具 举报

发表于 18-10-2008 02:11 AM | 显示全部楼层
原帖由 winmxaa 于 3-10-2008 11:54 PM 发表
真确来讲是 ExaminerID  set primary key
然后Name, ExaminerType , Date,Subject   set unique item

这种情况不能用Unique Key, 唯一的选择是Composite Key.
如果条件是同一个人不能在同一时间里做两份工, 就把 ExaminerID, Date 设为 Primary Key.

个人建议Normalization, 不然以后会很痛苦

Staff
----------
Staff_ID
Staff_Name
Primary(Staff_ID)

Exam
-----------
Exam_ID
Date
Subject
Primary(Exam_ID)

Examiner
----------
Exam_ID (Ref Exam.Exam_ID)
Examiner_ID (Ref Staff.Staff_ID)
ExaminerType
Primary(Exam_ID, Examiner_ID)

[ 本帖最后由 sfkwan 于 18-10-2008 02:12 AM 编辑 ]
回复

使用道具 举报


ADVERTISEMENT

您需要登录后才可以回帖 登录 | 注册

本版积分规则

 

ADVERTISEMENT



ADVERTISEMENT



ADVERTISEMENT

ADVERTISEMENT


版权所有 © 1996-2023 Cari Internet Sdn Bhd (483575-W)|IPSERVERONE 提供云主机|广告刊登|关于我们|私隐权|免控|投诉|联络|脸书|佳礼资讯网

GMT+8, 22-12-2025 02:47 PM , Processed in 0.105671 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表