1

新しい CMS 用のデータベースを設計していますが、ファイルと画像のテーブルを構築するのに問題があります。

現在の設計は、ファイル情報を含むテーブルを持つことです:

  • files: name, filename, extension, lang,size
  • images: name, filename, exstension,alt

product_filesそれらの上には、 、という名前の特定のタイプのテーブルがありarticle_filesます。product(forおよびimages): idimage_idproduct_id、のようなフィールドがありますposition

これらの表が存在するのは、異なる製品に同じ画像が含まれている可能性があるためです。
問題は、すべてのユース ケース (製品用に 2 つ、記事用に 2 つなど) について、これらの中間テーブルを繰り返していることです。

私はそれらを次のように1つのテーブルに結合することを考えていました:

  • items_images列: tabletable_idimage_idposition

それは良い方法ですか?それともそのままにしておくべきですか?私の知る限り、製品や記事のテーブルに接続するようなテーブルに外部キーを設定することはできません。

編集:

私は問題についてあまり明確ではなかったようです。ここに表示する最適な方法がわからないので、画像を説明します ( http://i.imgur.com/WrIWt.png ):テーブル構造行は無視してください。

一番上の行は、実際のファイル情報を含むテーブルです。それぞれドキュメント、画像、ビデオ。
中央の行は、3 つにグループ化された 6 つのテーブルで、各グループはそれぞれのテーブル (製品と記事) に接続されています。私がやりたいのは、それらの 6 つのうち 3 つだけを作成し、製品と記事の両方に同時に接続したままにすることです。たぶん解決策は4番目のテーブルですが、わかりません。

4

1 に答える 1

0

次のようなテーブル構造を使用できます。

id、image_id、pointer_id、位置、タイプ

製品、記事などであるかどうかは type でわかります。

于 2012-05-22T15:34:05.657 に答える