2017-05-08 2 views
0

このポストを開いていただきありがとうございます。私はMySQL DBの正規化であなたの助けが必要です。 私には10人の販売員がいて、売り物を売っています。サポートチームには営業マンのテレマーケティング販売をしている人はほとんどいません。だからとにかく、テーブルを正規化する最良の方法を考えていましたが、営業担当者が頻繁に辞めることを考慮して、別の販売代理店DBにDBを転送する必要があります。多くの同じ入力のための特定のMySQL正規化

現在、私は1つのテーブルしか持っていません。 1つのテーブルにすべてのものを入れたり、他の小さなテーブルに分けたりする方が良いでしょうか。現在、私の表は、この

ID、メガバイト、COMPANY_NAME、都市、company_owner、phone_no1、phone_no2、app_status、sales_agent、cc_agent、three_options、exp_date、cc_comment、sales_comment、input_date、call_made、状況

ID = AIのように見えますPK UQ

メガバイトは=私はそれがすべて違うので、一つのテーブルにする必要があります

COMPANY_NAME、都市、company_owner、cc_comment、sales_comment、input_date、call_made、phone_no1とphone_no2を提供することを一意のキーです。右?だから、

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 

、すべての変更もののため多分1つのテーブル、sales_agentのための別の、cc_agent、app_statusとステータスのための別の?

ありがとうございます。

答えて

0

小さいテーブルがたくさんあります。正規化の目標は、繰り返しデータを排除し、参照整合性を高めることです。あなたは小さなテーブルをたくさん持ち、外来キーを使うことでそれを達成します。

テーブル構造を作成するときに、名詞を探したいとします。名詞句のアプローチを使用する場合、可能な表を識別する方が簡単です。あなたのケースでは、company_name、company_ownerなどの列が表示されます。「Company」という表を作成し、id、name、owner、city、state、zipなどの列を付けます。

営業担当者、代理店、サポート人。しかし彼らはすべて従業員です。もう1つの可能なテーブルは「従業員」で、job_titleは列です。

本当に時間を費やしてデータベース構造を考え、3rd normal formにデータベースを取得しようとします。

関連する問題