2017-05-23 14 views

答えて

0

UPDATE: 私の理解が正しければ。上記のようにUserTableが構築されています。

1人のユーザーが1つの画像を持っています。ユーザーが画像を変更した場合は、それぞれのメッセージに関連付けられます。あなたの「メッセージ」

id_mesg、fk_userId、MessageTextの保管場所MessageTableがこれだけあると仮定すると、これらの3つの列を持っている必要があり、これらの前提条件に

建物です。

次の文はあなたにそれが実行されるたびに更新されたイメージを与えるだろう...

SELECT mt.id_msg, mt.MessageText, ut.img, ut.uname 
FROM UessageTable mt 
JOIN UserTable ut 
    On ut.id_user= mt.fk_userId 

は完全メッセージ・テーブルからIMG列とはuname列を削除...彼らは必要ありません。

+0

私はuser-TableでForeign Keyを使用することをお勧めします。 はい、メッセージテーブルのすべてのimgがテーブルユーザーに存在します。 FKは代替ソリューションでなければなりません。 – Json

+0

あなたの後ろのものを正確に翻訳するのは苦労しています。あなたの頭にある多くの情報に、あなたの質問に正しく当てはまらないこと。 OPとコメントの両方を明確にしてください。 – DarbyM

+0

現時点では、私はテーブルのメッセージで新しい行を作成するとき、私はちょうどテーブル(ユーザー)からイメージの名前をコピーします。しかし、問題は、ユーザーが自分のイメージを変更した場合、Messageメッセージのイメージは更新されません。だから私はテーブルのメッセージをテーブルユーザーとfkを使って接続する必要があります。 – Json

0

私はあなたがここの上には、alter table文を使用することができ、SQL

ALTER TABLE message-table ADD CONSTRAINT fk-message-img FOREIGN KEY 
(img) 
    REFERENCES user_table(id_user); 
0

で、これはMySQLで動作するかどうか知らないが、アイデア。

ALTER TABLEメッセージテーブルADD CONSTRAINT user_img FOREIGN KEY(img)REFERENCES user-table(img)ON DELETE ON UPDATE; 1あなたが複製してはならないIMG:画像へのマッピングユーザーが1である場合は、あなたができるようになるカスケードオプションを使用することができ、あなたのユースケースのための

は変更が

また、メッセージテーブルにユーザーのテーブルからの流れメッセージテーブル。むしろ、読み込み中にuser-tableのuNameを保持し、その列に結合してください。

関連する問題