Database design 超类型和子类型关系

Database design 超类型和子类型关系,database-design,entity-relationship,Database Design,Entity Relationship,实体类型 工作站->超类型 台式机、笔记本电脑->子类型 台式机和笔记本电脑与工作站实体超类型共享PK 关系 站点-个人->1:n 工作站-桌面->1:1 工作站-笔记本电脑->1:1 要建模的关系 一个人分配了零个或一个桌面 一个桌面分配给零个或一个人 一个人分配了零台或一台笔记本电脑 一台笔记本电脑分配给零个人或一个人 一个站点部署了零台、一台或多台台式机 在一个站点部署一个桌面 Q:我的想法是否正确,即个人和站点关系应使用子类型(即台式机和笔记本电脑)而不是超级类型建模 例如,笔记本电脑

实体类型

工作站->超类型
台式机、笔记本电脑->子类型

台式机和笔记本电脑与工作站实体超类型共享PK

关系

站点-个人->1:n
工作站-桌面->1:1
工作站-笔记本电脑->1:1

要建模的关系

一个人分配了零个或一个桌面
一个桌面分配给零个或一个人
一个人分配了零台或一台笔记本电脑
一台笔记本电脑分配给零个人或一个人
一个站点部署了零台、一台或多台台式机
在一个站点部署一个桌面

Q:我的想法是否正确,即个人和站点关系应使用子类型(即台式机和笔记本电脑)而不是超级类型建模

例如,笔记本电脑未部署到特定站点,因此在超类型和位置之间创建关系没有意义

多谢各位

我认为人与站点的关系应该是正确的吗 使用子类型(即台式机和笔记本电脑)建模,而不是 超型

如果我没弄错的话,是的

例如,计算机的问题是,真正的要求是一个人分配了零台计算机还是一台计算机。如果这是真正的需求,那么应该使用超类型。如果不是,则应使用子类型

使用子类型的一个副作用是,一个人可能同时被分配一台笔记本电脑和一台台式机