2017-05-08 5 views
0

Vielen Dank für das Öffnen dieses Posts. Ich brauche deine Hilfe bei MySQL DB Normalisierung. Ich habe 10 Verkäufer, die Sachen verkaufen, und ich habe wenige Leute im Support-Team, die Telemarketing-Verkäufe für Verkäufer machen. Wie auch immer, dachte darüber nach, was ist der beste Weg, um Tabelle zu normalisieren, aber in Betracht zu ziehen, dass Verkäufer oft aufgibt, so muss ich ihre DB zu einem anderen Händler-DB übertragen.Spezifische MySQL Normalisierung für viele gleiche Eingaben

Derzeit habe ich nur eine Tabelle. Ist es besser, alle Sachen in diese eine Tabelle zu legen oder in viele andere kleine Tabellen zu trennen? Derzeit ist mein Tisch sieht aus wie dieses

id, mb, company_name, Stadt, company_owner, phone_no1, phone_no2, app_status, sales_agent, cc_agent, three_options, exp_date, cc_comment, sales_comment, input_date, call_made, Status

id = AI PK UQ

mb = ist eindeutiger Schlüssel, die ich liefern

company_name, Stadt, company_owner, cc_comment, sales_comment, input_date, call_made, phone_no1 und phone_no2 sollten in einer Tabelle sein, da es alles anders ist. Recht?

sales_agent = I have 10 people 
cc_agent = I have 3 people 
app_status = I have 3 statuses to select, so it has to be one out of three 
status = I have 15 statuses to pick from, it has to be only one of those 

Also, vielleicht ein Tisch für alle veränderbares Zeug, eine andere für sales_agent, eine andere für cc_agent, app_status und Status?

Vielen Dank im Voraus.

Antwort

0

Viele kleinere Tabellen sind besser. Das Ziel der Normalisierung besteht darin, sich wiederholende Daten zu eliminieren und die referenzielle Integrität zu erhöhen. Das erreichen Sie mit vielen kleinen Tabellen und der Verwendung von Fremdschlüsseln.

Wenn Sie Ihre Tabellenstruktur erstellen, möchten Sie nach Substantiven suchen. Wenn Sie einen Nominalphrasenansatz verwenden, ist die Identifizierung möglicher Tabellen einfacher. In Ihrem Fall sehe ich Spalten namens company_name, company_owner, etc. Erstellen Sie eine Tabelle namens "Company" und geben Sie Spalten ID, Name, Besitzer, Stadt, Staat, PLZ etc.

Sie haben Vertriebsmitarbeiter, Agenten und Leute unterstützen. Aber sie sind alle Angestellte. Eine andere mögliche Tabelle ist 'Employee' und job_title ist eine Spalte.

Verbringen Sie wirklich die Zeit und denken Sie über die Datenbankstruktur nach und versuchen Sie, die Datenbank in 3rd normal form zu bekommen.