Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java apache cayenne为多对多关系增添了分量_Java_Database_Database Design_Apache Cayenne - Fatal编程技术网

Java apache cayenne为多对多关系增添了分量

Java apache cayenne为多对多关系增添了分量,java,database,database-design,apache-cayenne,Java,Database,Database Design,Apache Cayenne,各位 我在项目中使用apache cayenne。有个问题没办法解决 我有一个工程师表和一个技能表,一个工程师可以有很多技能,一个技能可以属于很多工程师,所以这是一个多对多的关系。我制作了一个工程师技能关系表,然后将这三个表与cayenne的“扁平关系”连接起来。到目前为止一切都很好 这就是问题所在,我得到了一个表示“工程师掌握技能的程度”的要求。这就像在关系上加一个“砝码”,我认为最好的地方是工程师技能关系表,但怎么做呢 在建模器中?我没有找到任何帮助 我对数据库设计了解不多,所以也许有一些方

各位

我在项目中使用apache cayenne。有个问题没办法解决

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

这就是问题所在,我得到了一个表示“工程师掌握技能的程度”的要求。这就像在关系上加一个“砝码”,我认为最好的地方是工程师技能关系表,但怎么做呢

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

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

欢迎任何想法


谢谢。

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


工程师-->工程师技能关系谢谢,安德鲁斯。我想你的方法会奏效的。似乎一些编码工作是不可避免的。但是这会对性能产生一些影响吗?因为这种变化,对性能没有特别的影响。当然,一般的最佳实践是适用的——在适用时使用预取,等等。