针对许多相同输入的特定MySQL规范化

时间:2017-05-08 22:38:17

标签: mysql sql node.js

感谢您打开这篇文章。我需要你对MySQL DB Normalization的帮助。 我有10个销售人员,销售东西,我支持团队的人很少,为销售人员做电话营销。所以无论如何,正在考虑什么是规范表的最佳方法,但考虑到销售人员经常退出所以我必须将他们的数据库转移到另一个销售代理DB。

目前我只有一张桌子。将所有内容放入一个表中还是分成许多其他小表更好。目前我的表看起来像这样

ID,MB,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

mb =是我提供的唯一键

company_name,city,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

那么,也许一个表用于所有可更改的内容,另一个用于sales_agent,另一个用于cc_agent,app_status和status?

提前谢谢。

1 个答案:

答案 0 :(得分:0)

许多小桌子更好。规范化的目标是消除重复数据,并增加参照完整性。你可以用很多小表和外键来实现它。

创建表结构时,您需要查找名词。当您使用名词 - 短语方法时,识别可能的表格更容易。在您的情况下,我看到名为company_name,company_owner等的列。创建一个名为' Company'的表。并给它列id,名称,所有者,城市,州,邮政等。

您有销售人员,代理商和支持人员。但他们都是员工。所以另一个可能的表是'员工'和job_title是一个列。

真的花时间思考数据库结构,并尝试将数据库放入3rd normal form