我想为下面的场景创建数据模型。我有一个名为PERSON and HEALTH_STANDARDS的表。
人员有id,姓名,地址,电子邮件HEALTH_STANDARDS有体重,身高等,
在UI中,如果用户选择了一个人,它必须显示标准的健康属性。接下来,用户将根据所选人员更改健康属性。其余的人员将具有标准的健康属性。
我如何对此进行建模。我是否需要在这里再创建一个表PERSON_HEALTH_ATTRIBUTES并进行映射。
发布于 2016-10-20 15:23:58
在我看来,HEALTH_STANDARDS是常量/默认值,实际上并不对应于真实的人,因此在PERSON和HEALTH_STANDARDS之间没有直接关系。相反,它可以在给定的person在PERSON_HEALTH_ATTRIBUTES中没有行时暗示,例如,为了简单起见,将属性限制为仅加权:
CREATE TABLE HEALTH_STANDARDS
( person_weight_kg INTEGER NOT NULL );
CREATE TABLE PERSON
( person_id INTEGER NOT NULL UNIQUE,
name VARCHAR(35) NOT NULL );
CREATE TABLE PERSON_HEALTH_ATTRIBUTES
( person_id INTEGER NOT NULL UNIQUE
REFERENCES PERSON ( person_id ),
person_weight_kg INTEGER NOT NULL );
SELECT person_id, person_weight_kg
FROM PERSON_HEALTH_ATTRIBUTES
UNION
SELECT person_id, person_weight_kg
FROM PERSON
NATURAL JOIN HEALTH_STANDARDS
WHERE person_id NOT IN ( SELECT person_id
FROM PERSON_HEALTH_ATTRIBUTES );发布于 2016-10-20 14:39:25
因为与PERSON及其健康属性存在一对一的关系,所以您应该将它们组合到一个表中。如果默认HEALTH_STANDARDS只有一个默认值,我会将其实现为PERSON表上的默认值。
发布于 2016-10-20 15:00:16
我认为你应该像图像中描述的那样设计表格结构。
如果一个人与健康标准有一对多的关系,就像一个人可以有许多健康标准,如身高、体重、颜色。因此,我们应该再创建一个包含person heath标准数据的表,这里我们已经创建了person_health_standard表
health_standard是一个主数据

https://stackoverflow.com/questions/40147063
复制相似问题