新しい CMS 用のデータベースを設計していますが、ファイルと画像のテーブルを構築するのに問題があります。
現在の設計は、ファイル情報を含むテーブルを持つことです:
files
:name
,filename
,extension
,lang
,size
images
:name
,filename
,exstension
,alt
product_files
それらの上には、 、という名前の特定のタイプのテーブルがありarticle_files
ます。product
(forおよびimages
): id
、image_id
、product_id
、のようなフィールドがありますposition
。
これらの表が存在するのは、異なる製品に同じ画像が含まれている可能性があるためです。
問題は、すべてのユース ケース (製品用に 2 つ、記事用に 2 つなど) について、これらの中間テーブルを繰り返していることです。
私はそれらを次のように1つのテーブルに結合することを考えていました:
items_images
列:table
、table_id
、image_id
、position
それは良い方法ですか?それともそのままにしておくべきですか?私の知る限り、製品や記事のテーブルに接続するようなテーブルに外部キーを設定することはできません。
編集:
私は問題についてあまり明確ではなかったようです。ここに表示する最適な方法がわからないので、画像を説明します ( http://i.imgur.com/WrIWt.png ):行は無視してください。
一番上の行は、実際のファイル情報を含むテーブルです。それぞれドキュメント、画像、ビデオ。
中央の行は、3 つにグループ化された 6 つのテーブルで、各グループはそれぞれのテーブル (製品と記事) に接続されています。私がやりたいのは、それらの 6 つのうち 3 つだけを作成し、製品と記事の両方に同時に接続したままにすることです。たぶん解決策は4番目のテーブルですが、わかりません。