Database design 电话支援人员的标准化

Database design 电话支援人员的标准化,database-design,normalization,database-normalization,Database Design,Normalization,Database Normalization,我正在创建一个sql数据库,用于记录公司(或公司内的单独部门)与服务合同(1)之间的呼叫 最初的呼叫由一线支持分析员记录,该分析员评估问题的严重性并将呼叫放入池中。电话由问题分析师接听,然后根据其专业知识将电话分配给专家分析师,后者将努力提供解决方案。此过程由支持经理监督 这就是我在规范化数据方面取得的进展。我不确定是否选择了正确的初始密钥。我也不知道如何完成第三个标准表格。这是它的一张照片 如果你们中有人能帮我,我会很高兴的 *更新 好的,我又尝试了一次标准化,结果如下: (星形=外键。双星

我正在创建一个sql数据库,用于记录公司(或公司内的单独部门)与服务合同(1)之间的呼叫

最初的呼叫由一线支持分析员记录,该分析员评估问题的严重性并将呼叫放入池中。电话由问题分析师接听,然后根据其专业知识将电话分配给专家分析师,后者将努力提供解决方案。此过程由支持经理监督

这就是我在规范化数据方面取得的进展。我不确定是否选择了正确的初始密钥。我也不知道如何完成第三个标准表格。这是它的一张照片

如果你们中有人能帮我,我会很高兴的

*更新 好的,我又尝试了一次标准化,结果如下: (星形=外键。双星=主键)


注释


(1) 服务合同涉及整个公司或部门,即同一公司的两个部门将有单独的服务合同,服务合同涵盖不同的软件/操作系统组合,因此Windows 7下的SQL Developer将与Windows XP下的SQL Developer有单独的服务合同(或Windows Vista或MacOS Lion)

在不了解您的需求的情况下,很难做到精确,但以下是一些注意事项:

我将创建一个具有analyst_类型的“analyst”表,而不是为每种类型的分析师创建单独的表

我会在分析师和专业领域之间建立一种非对多的关系

我将创建“呼叫状态”的明确概念,而不是取决于目前哪个分析师有球


我会考虑在一个单独的表中使用日期标记来调用Call状态、动作和当前分析器,这样你就可以跟踪历史——当它被分配给第二行分析员的时候?他们调用了多长时间?他们做了什么?

你知道你的目标是从2NF移动到3NF吗?我已经添加了一个更新版本的正规化。这看起来对3NF正确吗?嗨,谢谢你的回复。我已经完成了你说的大部分内容。关于呼叫状态,可以是I)等待任务ii)正在处理iii)等待回复iv)关闭。这是以“当前状态”保存的。将其存储在“调用”表中是否更合适?这里有一个更新的标准化链接,我认为分析师和专家之间存在着多对多的关系。我认为analystID应该在action表上,而不是call表上。现在看起来正常了吗?感谢您的帮助。您仍然需要分析师和专家之间的“多对多”表-通常这需要一个“联接”表,以分析师id和专家id作为外键。
**Call id**
Date and time of call
Method of call
*First line Support Analyst ID
*Problem Analyst  ID
*Specialist Analysts  ID
*Service contract number
Name of caller
landline
mobile 
Email address
Brief textual description of problem
Initial severity level

**Action id** 
*Call id 
Date and time of action
Textual description of action
Current status
Current severity level

**Specialist Analysts  ID**
Name of specialist analyst
Expertise

**First line Support Analyst ID**
Name of first line support analyst

**Problem Analyst ID**
Name of problem analyst

**Service contract number**
Company
Department
Software product
Software version
Operating system