私はいくつかのテーブルを持っています:
- テーブルASK
idask
- テーブルPREFERENCESwith
idpref
、、fk_idask
fk_idstructure
- テーブルSTRUCTUREwith
idstructure
id
との間のすべての制約と、テーブルPREFERENCES( 、 )fk_id
の一意のインデックスを使用します。fk_idask
fk_idstructure
問題は、PREFERENCESに2つの行がある場合です。
`IDPREF` `FK_IDASK` `FK_IDSTRUCTURE`
1 1 1
2 1 2
設定間の2つの構造を反転(切り替え?)したい場合
`IDPREF` `FK_IDASK` `FK_IDSTRUCTURE`
1 1 **2**
2 1 **1**
最初の更新では、同じ構造の同じ質問に対して2つの設定が行われるため、との間FK_IDASK
の一意のインデックスが分割されます。FK_IDSTRUCTURE
これを防ぐために、関数deleteAndResaveを作成します。これにより、今のところ問題が解決します。
しかし、今度はとでASSIGNATIONテーブルが到着しidassignation
ますfk_idpref
。
ここで、ASSIGNATIONによってリンクされたプリファレンスを削除すると、制約が解除されます。
私はすでに回避策を見つけましたが、醜いです。この問題にはいくつかの正しい解決策がありますか?
答えてくれてありがとう!
ps。私の悪い英語でごめんなさい:(