1

DB設計の観点から、以下をより適切に実行できるかどうかを検討しています。なぜそれが間違っている/正しいのかについてのアドバイスをいただければ幸いです。

私は3つのテーブルを持っています

Person
Car
Image

車と人の両方が画像を持つことができ、画像へのすべての参照は画像テーブルに保存されます。

Person has > Images
Car has > Images

画像テーブルは次のようになります。

Image
ID   NAME    CAR_ID   PERSON_ ID
1    img1    10       NULL
2    img2    NUll     8

テーブルにNULLがたくさんあるようですが、画像が車用か人用かを知る必要があります。

では、もしあったとしても、これをどのように改善できるでしょうか?

4

2 に答える 2

3

1対1の関係がある場合、CarテーブルとPersonテーブルに画像への参照を保存すると、nullが少なくなります。複数の画像がある場合は、関係を格納するだけのテーブルを作成するのが最善です。

このテーブルは次のようになります。

DATATYPE    DATAID    IMAGEID
 1           10         1
 2            8         2

最初の列で、1は車を表し、2は画像を表します。

于 2012-05-13T20:10:02.647 に答える
0

画像テーブルにこれらの2つのフィールドは必要ありません。人と車のテーブルをクエリして、画像IDに一致するエントリが存在するかどうかを確認できます。

しかし、あなたはそれらの存在が便利でパフォーマンスが良いと感じるかもしれません。

于 2012-05-13T20:09:16.497 に答える