0

每个人。

我在我的项目中使用 apache cayenne。有问题解决不了。

我有一个工程师表和一个技能表,一个工程师可以有很多技能,一个技能可以属于多个工程师,所以这是多对多的关系。我做了一个工程师技能关系表,然后将这三个表与 cayenne 的“扁平关系”联系起来。到目前为止一切都很好。

这就是问题所在,我要求代表“工程师掌握技能的程度”。这就像在关系上添加一个“权重”,我认为最好的地方是工程师-技能-关系表,但是如何?

在建模器中?我没有找到任何帮助。

我对数据库设计不太了解,所以也许有一些方法可以通过调整表设计来解决这个问题?

欢迎任何想法。

谢谢。

4

1 回答 1

0

在这种情况下,您需要放弃“扁平化”并将工程师技能关系变为常规实体。映射的 Db* 端应保持不变。在映射的 Obj* 端,而不是 2 个具有多对多的实体,您将拥有 3 个具有一对一对多的实体:

工程师 --> EngineerSkillRelation <-- 技能。

于 2013-12-04T10:24:29.220 回答