2016-07-28 16 views
0

Ich habe eine Tabelle, die Postleitzahlen mit dem zugehörigen Verkäufer enthält. Wir fügen eine Änderung hinzu, wenn am Ende mehrere Verkäufer mit jeder Postleitzahl verbunden sind. Ist es die beste Vorgehensweise, einfach eine neue Spalte für den neuen Verkäufer hinzuzufügen oder weitere Zeilen hinzuzufügen?Hinzufügen einer neuen Spalte vs Hinzufügen von mehr Zeilen Systemeffizienz

In der Tabelle befinden sich ungefähr 1,5 Millionen Postleitzahlen.

+0

Absolut NEIN !!! Sie möchten keine weitere Spalte für den Verkäufer hinzufügen. Das hört sich so an, als ob Sie bereits ernsthafte Normalisierungsprobleme haben. Sie würden drei Tabellen für diese Art von Sache benötigen. PostalCodes, SalesPerson und SalesPersonPostalCodes. –

+0

Ich stimme dir zu, aber danke für die Zusicherung. Es ist ein Tisch, der lange vor jedem geschaffen wurde, der jetzt hier arbeitet. – joetinger

+0

Es kann nicht zu spät sein, das zu beheben. Ich nehme an, Sie haben bereits doppelte PostalCodes und/oder Verkäufer in dieser Tabelle. Ich fühle deinen Schmerz. Es ist nie leicht, entsetzliche Entwürfe zu entwirren, die wir von den Menschen, die schon schreiend weggelaufen sind, entdecken müssen. –

Antwort

5

Weder.

Das Hinzufügen einer neuen Spalte für einen neuen Vertriebsmitarbeiter ist nicht möglich. Sie müssen Spalten beliebig hinzufügen, um neue Verkäufer hinzuzufügen. Das ist in jeder Hinsicht eine schlechte Idee.

Das Hinzufügen neuer Zeilen ändert die Bedeutung der Daten in der Tabelle. Die Tabelle enthält Postleitzahlen und Informationen zu diesen Entitäten. Es sollte nicht für mehr als das verantwortlich sein.

Was Sie beschreiben, ist eine Viele-zu-Viele-Beziehung. Dies würde mittels einer Verknüpfungstabelle zwischen den zwei Entitäten erreicht werden. Etwas so einfaches wie folgt aus:

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

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

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

Jede Zeile in PostalCode stellt eine Postleitzahl. Jede Zeile in Salesperson repräsentiert einen Verkäufer. Und jede Zeile in der Verknüpfungstabelle repräsentiert eine Beziehung zwischen den beiden. Sie fügen so viele Beziehungen hinzu, wie Sie möchten. Aber fügen Sie nicht willkürlich neue Domänen-Entitätsdatensätze hinzu, wenn Sie mehr Beziehungen zwischen ihnen hinzufügen möchten.

Verwandte Themen