【问题标题】:Specific MySQL Normalization for many same inputs许多相同输入的特定 MySQL 规范化
【发布时间】:2017-05-08 22:38:17
【问题描述】:

感谢您打开这篇文章。我需要您在 MySQL 数据库规范化方面的帮助。 我有 10 名销售人员,销售东西,而我的支持团队中很少有人为销售人员进行电话营销销售。所以无论如何,我在想什么是标准化表格的最佳方法,但考虑到销售人员经常退出,所以我不得不将他们的数据库转移到另一个销售代理数据库。

目前我只有一张桌子。将所有东西放在一张桌子上还是分开到许多其他小桌子上更好。目前我的桌子是这样的

id , mb , company_name , city , 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 = 是我提供的唯一键

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?

提前谢谢你。

【问题讨论】:

    标签: mysql sql node.js


    【解决方案1】:

    很多小桌子更好。规范化的目标是消除重复数据,并提高参照完整性。您可以通过大量小表和使用外键来实现这一点。

    在创建表格结构时,您需要查找名词。当您使用名词短语方法时,识别可能的表格更容易。在您的情况下,我看到名为 company_name、company_owner 等的列。创建一个名为“Company”的表并为其指定列 id、name、owner、city、state、zip 等。

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

    真花时间想数据库结构,尽量把数据库弄成3rd normal form

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-08-21
      • 2018-06-06
      • 2018-04-23
      • 2021-03-22
      • 2012-04-19
      • 2011-02-03
      • 1970-01-01
      • 2019-08-19
      相关资源
      最近更新 更多