2012-02-13 5 views
0

このプロジェクトでは苦労しています。カテゴリ/パッケージ/エキストラで分割されたボートコンフィグレータを構築しています。データベーステーブルのコンフィグレータ(javascript)の相互依存関係を処理する正しい方法

各カテゴリは他と切り離されているため、大きな問題ではありません。

この問題は、パッケージや別売品で発生します。エクストラは、パッケージ内で選択できるオプションです(合計価格を引き上げる)。

  1. そのパッケージ
  2. にアップグレードしているあなたも、余分な(または2)を持っている可能性があり、すべてのtoghetherパッケージを購入することができる時間があります。私は、これらの2つのオブジェクトの間に存在することができ、すべての依存関係を説明します
  3. 指定したパッケージ内に少なくとも一つのアイテムを持っている場合にのみ購入することができますが、4-5の間で単一のパッケージを購入することができ、さらにあなたが
  4. 時々余分な別の第六のパッケージにいくつかの特典を購入することができます時間があります
  5. 場合によっては、特定の余裕がある場合にのみ余分に購入することができます

現時点では私の心には他の依存関係はありませんが、他にも可能性があります。

この依存関係をすべて保存するためにどのアプローチをとるべきか分かりません.3つの基本SQLテーブル(カテゴリ、パッケージ、余分なものは接続されていないため、パッケージ=>余分な依存関係は他のカテゴリと異なる可能性があります) CategoryRelationship、PackageRelationship、ExtraRelationshipがありますが、私はいくつかの依存関係を表現するのに苦労しています.1つのidフィールドに限定されていない第2のものです。

これらの相互依存関係は、どのようにして通常どのように処理されますか?

私は、どんな提案

編集1への感謝を、この問題に直面したことはありません:

私は依存関係の各「タイプ」のために1つの表にアプローチを変更することを考えている、それは考えることができますすべてのタイプの依存関係を持つ単一のテーブルではなく、適切な処理方法ですか?

答えて

0

誰もこれに答えなかったので、私はこのプロジェクトで最終的に使用したアプローチを投稿しています。

私は依存性の種類ごとに1つのテーブルを作成しました(私が編集1で言ったように)。各テーブルは任意のidの項目への複数の参照を持つことができ、このようにして依存関係を表すすべての列を整理することが可能です。

このアプローチは、実行される検証メソッドを持つクラスであるCakePHP検証モデルに触発されています。

これは他の人にとって役に立ちます。誰も答えが得られない場合は、これを答えとしてマークします。

関連する問題