mysql - 两个类之间是否可以有两个链接(关联)?

标签 mysql sql oracle database-design data-modeling

问题标题有点困惑。我有一级员工和一级项目。一名或多名员工正在从事一个或多个项目。在这个关联中,我只有一个从具有*多重性的员工类到具有*多重性的项目类的链接。现在有另一种实现。每个项目只有一名经理,属于员工级别!
我的问题是,最好的方法是在项目类中有一个属性管理器,它是员工 ID 的外键,或者有另一个从 STAFF 类到项目类的 1-1 多重性链接?两个类之间是否有可能存在链接?最终的想法是在这些类之间建立一个关联类,其中包含项目经理和项目ID这两个字段?

最佳答案

如果一个项目只有一个经理,那么对此进行建模的适当方法是在 Projects 表中添加一个名为 ManagerId 的列,并具有适当的外键引用另一张 table 。如果需要管理器,则将声明为NOT NULL

如果一个项目可能有多个经理,那么您可能需要一个关联/连接表来记录此信息。当你只需要一名经理时这样做似乎是不必要的复杂化。而且,对任意数量的事物实现约束通常比仅处理零或一更困难。

上述情况的一个异常(exception)是经理可以随时间更换。那么您可能需要另一个表格,其中包含每位经理任期的生效日期和结束日期。

关于mysql - 两个类之间是否可以有两个链接(关联)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22743106/

相关文章:

sql - 通用商店应用程序从服务器获取数据

mysql - 同一个表中两条记录的日期差异

r - 如何从 R 调用存储在 Oracle 数据库上的 PL/SQL 过程

.net - Oracle ODP.NET 使用参数调用包过程时出现问题

php - 使用数据库中的值进行计算

mysql - SQL 中点与线的空间交集

mysql - 从大型数据库中删除数据

mysql - 使用 MySQL 进行严格的数据验证

php - Laravel:如何优化多个查询

sql - 比较 Oracle 中的字符串