2011-07-06 13 views
0

私は店舗用のデータベースを設計しています。チェーン名の店の支店のためのテーブルとテーブルがあります:"その他"カテゴリのショップチェーンデータベース

Chains 
id name 
1 Wendy's 
2 Henry's 
3 Other 

Branches 
id chain_id name 
1 1  East Hollywood // Wendy's East Hollywood 
2 1  NYC    // Wendy's NYC 
3 2  NYC    // Henry's NYC 

は最後に、私は「ウェンディーズNYC」と「ヘンリーの東ハリウッド」のようなものを表示したいです。これはかなり基本的なものです。

私の問題は、私が自分のカテゴリーを与えるのに十分ではないほどたくさんのお店をダンプすることができる "その他"と呼ばれるチェーンを作りたいということです。チェーンには2つのショップしかない場合は、「その他」に入り、カテゴリリストが表示されないようにします。しかし、私はまだ "Mom 'n' Pops NYC"のようなものを表示できるようにしたい。このようなものに最適なデータベース設計は何ですか?データベースではなくコードでこれを実装する方が簡単ですか?ありがとう。

答えて

0

現在、チェーンの名前と場所を支店に保存しています。

チェーンに名前のないストアのクラスが必要ですが、まだ名前があるので、その名前を格納する場所が必要です。

様々な可能性があります。

  • はそれだけで本当の連鎖が、すべての店舗名ではありませんでしたので、あなたはあなたの「チェーン」テーブルを一般化できます。
  • 「ブランチ」テーブルには、チェーン以外の店舗の名前と場所を格納することができます。
  • あなたは、あなたが実際のチェーンとしてエントリを扱うかどうかを言った別のフィールドが必要な場合があります。非チェーン店のための第三のテーブルを持つことができます。

第三は、おそらく最も便利であるが、それらのいずれかが仕事ができる。

0

モデリングの観点から、チェーンを作る方が良いでしょう< - > "Other"という偽のチェーンを発明する代わりに、両端でオプションのブランチ関係を使用することができます。 hemaは、chain_id列にNULLを許可すると宣言します。おそらくテーブル名を "Branch"から "Outlet"に変更するべきです...存在しない "チェーン"の "ブランチ"を持つのはあまり意味がないからです。

関連する問題