persistence.jsを使用すると、多対多の関係 (N:M) を形成する 2 つのエンティティ (Foo、Bar) があります。これまでのところ、多くの「一方向」を追加することしかできませんでした。つまり、Foo の 1 つのインスタンスは多くの Bar を追加できますが、この関係で使用される Bar のインスタンスは、多くの Foo を持つことはできません。しかし、Bar の新しいインスタンスは再び多くの Foo を持つことができます。可能であれば、「両方向に」多くのエンティティを追加するにはどうすればよいですか? または、RDB (N:M => 1:NM:1) のようにジャンクション テーブルを使用する必要がありますか?
var foo0、foo1、foo2、bar0、bar1、bar2 Foo = persistence.define( 'Foo', { val: 'TEXT' } ) Bar = persistence.define( 'Bar', { val: 'TEXT' } ) Foo.hasMany( 'バー', バー, 'foo' ) Bar.hasMany( 'foos', Foo, 'bar' ) persistence.store.memory.config(持続性); persistence.schemaSync(); foo0 = new Foo( { val : 'foo0' } ) foo1 = new Foo( { val : 'foo1' } ) foo2 = new Foo( { val : 'foo2' } ) bar0 = new Bar( { val : 'bar0' } ) bar1 = new Bar( { val : 'bar1' } ) bar2 = new Bar( { val : 'bar2' } ) foo1.bars.add( バー 0 ) foo2.bars.add( bar0 ) // 注: 上記のステートメントで DB に既に追加されている => 何もしない foo2.bars.add( バー 1 ) bar1.foos.add( foo0 ) bar2.foos.add( foo0 ) // 注: 上記のステートメントで DB に既に追加されている => 何もしない bar2.foos.add( foo1 ) persistence.flush( 関数 () { Foo.all().each( 関数 ( foo ) { foo.bars.list( 関数 (バー) { console.log( "Foo " + foo.val + ": " ) _.each( バー、関数 (バー) { console.log( バー.val ) } ) } ) } ) Bar.all().each( 関数 ( バー ) { bar.foos.list( 関数 ( foos ) { console.log( "Bar " + bar.val + ": " ) _.each( foos, function ( foo ) { console.log( foo.val ) } ) } ) } ) Bar.all().list( 関数 ( バー ) { foo0.バー = バー } ) // => "キャッチされていないエラー: まだサポートされていません" } )