2012-01-29 8 views
0

注:画像は、私は、このデータベースの設計に問題があるズーム冗長性の問題を避けるためのデータベース設計:コンベンションまたは異なるデザインを使用しますか?

を可能にするクリック可能です、私は別の解決策を持っていますが、それらのどれも十分な私をsatisfactません。

このソフトウェアは、製品のコンフィグレータに関するものです。このコンフィギュレータを使用して、価格を引き上げるすべての機能を選択できます。

Package with price

Package without price

これは、私がユーザーに提示しなければならないデータです。

  1. 価格を持っていない余分なこのタイプの、そのすべてのエキストラの料金を持っているパッケージの内側にマージされます:何私に問題を与えていることはエキストラの2種類があるという事実です。 (リラックス[A123]は価格、最初のイメージのパッケージの例です)
  2. このタイプの余分な価格はパッケージに含まれていないため、価格はありません価格のないパッケージの例)

ここでは、私はsatisfactていないよ、私の現在の設計、次のとおりです。

Database design

(グループのみアップエキストラにあるExtrasCategoryを無視)

最大の問題は、価格がなくても各エクストラ(クラスは今)がパッケージに属していることです。

しかし、各パッケージの料金はBoatごとに異なる場合がありますので、別の価格を設定する必要があります。各エキストラは "基本" パッケージを持っている

  • は、私はこのような何かをしたいです。

  • パッケージには、我々はパッケージ価格を持っていない場合は、我々はこの中しかしエクストラ

の「基本」パッケージを使用することができ、各ボート

  • に対して別々に価格設定している場合私は冗長性を持っています:余分にパッケージを持っています、BoatExtra(価格は余分です)はBoatExtrasPackageを持っていますので、パッケージへの参照は2倍です

    どうすればこの問題を解決できますか?

    編集1: Ok私は自分が望むものをより良く説明する画像を作成しました。私はBoatExtraが持っていない場合、余分な( "追加パッケージ"で) "デフォルトパッケージ"が必要です。

    enter image description here

  • 答えて

    0

    私はスペース消費量を最小限に抑えたいという問題があるようですが、良い設計にはなりません。私が理解した後、私はこれをやっていました(それは間違っています)。私は以前のものよりも優れていて、私の問題を解決したまったく異なるデザインを考え出しました。

    私はobviuslyより多くのパッケージをビルドする必要があるが、これはロジックが

    Database structure fixed

    0

    は、あなたのデザインIEで冗長性を持っている:コードと名前を。あなたのシステムが適切に理解されていれば、私はそれを添付ファイルとして行うでしょう。enter image description here

    +0

    を望んでいる私は気...左側にその部分を読み取ることができないです。私が理解していれば、 "パッケージ"を文字列として扱うことをお勧めします。これは良い考えです。あなたがカテゴリとパッケージについて話しているなら、2つの異なる名前です(よくともにbtw) –

    +0

    http://i.stack.imgur.com/Jrrkv.png – vimdude

    +0

    あなたのイメージを今見ている。 **編集**カテゴリとパッケージは2種類ありません。カテゴリを無視すると、そのような冗長性の問題はありません。問題は、私が2倍のパッケージをリンクすることです(問題の編集を見てください)。 –

    関連する問題