2016-07-28 6 views
0

郵便番号とその営業担当者が含まれているテーブルがあります。最終的に、各郵便番号に複数の営業担当者が関連付けられています。新しい営業担当者に新しい列を追加したり、行を追加したりするのがベストプラクティスですか?新しい列を追加するとシステムの効率を向上させる行が追加されます

テーブルには約150万の郵便番号があります。

+0

絶対にありません!営業担当者に別の列を追加する必要はありません。これは、すでにいくつかの深刻な正規化の問題があるかもしれないように思えます。このタイプのものには3つのテーブルが必要です。 PostalCodes、SalesPerson、およびSalesPersonPostalCodesが含まれます。 –

+0

私は同意しますが、安心していただきありがとうございます。これは今ここで働く全員の前に作られたテーブルです。 – joetinger

+0

これを修正するのは遅すぎることはありません。私はこのテーブルに重複する郵便番号および/または営業担当者が既にいることを推測しています。あなたの痛みが分かります。すでに叫んでいた人々から発見するために残された恐ろしいデザインを解くことは決して容易ではありません。 –

答えて

5

どちらもありません。

新しい営業担当者のための新しい列の追加は、非スターターです。新しい営業担当者を追加するには、列を任意に追加し続ける必要があります。これはあらゆる面で悪い考えです。

新しい行を追加すると、テーブル内のデータの意味が変更されます。テーブルには、郵便番号とそれらのエンティティに関する情報が格納されています。それ以上のことについては責任を負うべきではありません。

あなたが説明していることは、多対多の関係です。これは、2つのエンティティ間のリンクテーブルによって実現されます。このような単純なもの:PostalCode

PostalCode 
--------------- 
ID 
Code 
etc. 

Salesperson 
--------------- 
ID 
Name 
etc. 

SalespersonPostalCode 
--------------- 
ID 
SalesPersonID 
PostalCodeID 

各列は郵便番号を表します。 Salespersonの各行は営業担当者を表します。リンクテーブルの各行は、2つの間の関係を表します。あなたは好きなだけ多くの関係を追加します。しかし、あなたが望むときに新しいドメインエンティティレコードを任意に追加しないでください。

関連する問題