1
我在 Sybase PowerDesigner 中做一个概念模型。
限制如下:
一名医生在工作时间(轮班)期间一次只能在一个办公室工作。

我猜医生 - 办公室的关系应该是多对多,但是呢?
时间限制(“在他的工作时间”)?
应该是新表 SHIFT 吗?

所以我想我应该有四个表(DOCTOR、OFFICE、SHIFT 和 OFFICE SCHEDULE)。
OFFICE SCHEDULE 应该是一个连接所有 3 个其他实体的表
并且应该有复合主键(id_doctor、id_office、id_shift)?
4

3 回答 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 回答