0

ユーザーが EVERY フィールドに複数の値を入力できるようにするよう求められました。したがって、オプションは無限です。

例えば。列は次のとおりです。CompanyID- 会社名 Web サイト Key_Markets M&A_History Highlights Region Comments

シナリオは、企業が複数の Web サイト、主要な市場、地域、エッチングを持つことができるというものです。どうすればこれを専門的に行うことができますか?すべての列を個別のテーブルに配置することを考えています。

4

2 に答える 2

2

これを実現するには、基本的に 3 つの方法があります。

1) 複数のフィールドを 1 つの列に別々に書き込みます。これは非常に悪い設計であり、アプリケーションで分割を処理する必要があります - そうしないでください ;-)

2) 複数のグループを持つ 1 つのテーブルを使用して、データを格納します。これはパラメーターには意味がありますが、顧客ごとに異なる値がある場合は実際にはそうではありません。例えば:

  • 会社ID
  • グループID
  • 位置
  • 価値

例:

108001, 'homepage', 1, 'www.mypage.com';
108001, 'homepage', 2, 'www.mysecondpage.com';
108001, 'homepage', 3, 'www.anotherpage.com';
108001, 'markets', 1, 'erp';
108001, 'markets', 2, 'software';
108001, 'region', 1, 'germany';
108001, 'region', 2, 'austria';
108001, 'region', 3, 'poland';

3) 1:n 関係ごとに別々のテーブルを使用してください! これは、私が推測するニーズに最適なソリューションです。これには、スキーマを簡単に拡張して、より多くのデータを格納できるという利点があります。たとえば、各地域や主要市場などのユーザー数を保存することにした場合などです。

もう 1 つのポイント: n:m 関係を使用して、データベース内の二重コンテンツを回避してください。たとえば、主要な市場と地域を完全に分離したテーブルに格納し、顧客の ID と主要な市場をクロス集計に格納する必要があります。そのため、キーマーケットを顧客ごとに文字列として保存する必要はありません!

于 2013-05-27T14:12:45.953 に答える