我在 Sybase PowerDesigner 中做一个概念模型。 限制如下: 一名医生在工作时间(轮班)期间一次只能在一个办公室工作。 我猜医生 - 办公室的关系应该是多对多,但是呢? 时间限制(“在他的工作时间”)? 应该是新表 SHIFT 吗? 所以我想我应该有四个表(DOCTOR、OFFICE、SHIFT 和 OFFICE SCHEDULE)。 OFFICE SCHEDULE 应该是一个连接所有 3 个其他实体的表 并且应该有复合主键(id_doctor、id_office、id_shift)?
问问题
4364 次
3 回答
1
该密钥(id_doctor、id_office、id_shift)将允许医生在一个班次中在多个办公室工作。为医生和班次表尝试一个键 - 办公室是一个依赖字段。然而,这将允许一个办公室有多名医生轮班,我不确定这是否允许。
于 2009-09-23T16:53:10.087 回答
0
我会将您的主键更改为仅包括办公室和班次,但还会在医生和班次上添加单独的唯一约束。
于 2009-09-23T16:57:33.353 回答
0
OFFICE SCHEDULE 的主键应该是 (id_office, id_shift)。id_doctor 应该在表中,但不是主键的一部分。这将强制执行规则,即给定一个办公室和轮班,该办公室最多只能有一名医生。
当然,除了构成主键的两个之外,这三个都是外键。
于 2009-09-23T17:56:37.380 回答