数据库设计 – 实体关系问题
我有4个相关的表(这是一个例子): Company: ID Name CNPJ Department: ID Name Code ID_Company Classification: ID Name Code ID_Company Workers: Id Name Code ID_Classification ID_Department 假设我有一个id = 20,id_company = 1的分类. 这将允许创建来自两家公司的工人,因为分类和部门分别与公司相关联.我不希望这种情况发生,所以我认为我的人际关系有问题,我不知道如何解决它. 解决方法您的问题源于您的模型中缺少实体类型的事实.考虑以下ERD:请注意,我在DEPARTMENT和CLASSIFICATION之间添加了一个交集实体类型.这个新的实体类型:POSITION提供模型中隐含的信息,特定部门具有各种分类的给定工作集. 将POSITION作为显式实体添加到模型中有一些优点. >它避免了您担心可能被分配到不同公司的部门和分类的WORKER的问题. 请注意,为了避免为不同公司的部门和分类定义职位的问题,我扩展了DEPARTMENT和CLASSIFICATION的关键,这很好,因为你可以在Todd Everett’s中详细阅读回答. 谨防上面的模型假设简化.具体而言,它假定每个位置仅记录一次.这可能适用于您的业务规则,也可能不适用.如果您需要公司内同一部门和分类的多个POSITION记录,那么您可以在POSITION中引入代理键. (编辑:应用网_常德站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- sql-server – 关于作为Head Blocker的SQL连接,我该怎么办?
- sql-server – 什么日期/时间文字格式是LANGUAGE和DATEFORM
- sql-server – 为什么表使用其主键作为自身的外键
- sql-server – SQL Server PDF全文搜索无法在FileStream PD
- sql-server – 一个事务中SQL Server中的备用同义词
- sql-server – 相当于SQL Server中的Oracle外部表
- SQL语句怎样写实现截取字符串的小写字母?
- SQL Server中GUID的数据类型是什么?
- sql – 将两个表合并为一个新表,以便忽略另一个表中的选择行
- sql-server – 在Excel中的VBA中从SQL Server捕获错误消息