关于数据库概念的建议
Suggestions about a Database conception
我正在进行一个创建新 Java EE 应用程序(JSF、Hibernate、Spring Security、Informix 数据库)的项目。此应用程序将自动输入银行员工年度面谈的笔记。
一开始,所有内容都输入到 Excel 文件中,然后生成包含各种性能图表的报告(根据从 0 到 4 输入的注释)。
现在我想做一个相当优化的数据库设计。我想创建下表:
Interview
列 (interview_id, interview_date)
、
Competency
列 (competency_id, competency_group, competency_name)
、
Interview_note
列 (interview_note_id, employee_id (FK), interview_id (FK) , competency_id (FK))
但是,我对如何保持紧凑和逻辑有一些疑问。这是正确的做事方式吗?是否有任何改进需要考虑更多优化?
在您的叙述和草稿数据库架构中,我发现了以下已识别的实体:Employee
、Competency
、Interview
和 Interview_note
。
在这方面,只有 Employee
table 缺失,但我相信您在某处有它。此外,您的设计非常灵活,因为它允许对同一面试、能力和员工进行多次 Interview_notes
。因此,可能缺少的是 id
谁做了笔记。或者,如果面试只有一套笔记,您可以考虑在 Interview
.
中识别面试官
其中的一部分,也许还有一些缺失的注释数据(分数、满意度百分比或一些文本注释?)您的设计似乎达到了它的目的。
数据库引擎将很好地优化您必须执行的所有连接。也许通过将 _id
定义为主键来促进它的工作,如果你没有这样做的话。
我看不到其他优化:每个 table 清楚地代表一个不同的关系(在该术语的关系代数含义中)并且合并它们中的任何一个都将不可避免地导致次优的冗余模式。
我正在进行一个创建新 Java EE 应用程序(JSF、Hibernate、Spring Security、Informix 数据库)的项目。此应用程序将自动输入银行员工年度面谈的笔记。
一开始,所有内容都输入到 Excel 文件中,然后生成包含各种性能图表的报告(根据从 0 到 4 输入的注释)。
现在我想做一个相当优化的数据库设计。我想创建下表:
Interview
列(interview_id, interview_date)
、Competency
列(competency_id, competency_group, competency_name)
、Interview_note
列(interview_note_id, employee_id (FK), interview_id (FK) , competency_id (FK))
但是,我对如何保持紧凑和逻辑有一些疑问。这是正确的做事方式吗?是否有任何改进需要考虑更多优化?
在您的叙述和草稿数据库架构中,我发现了以下已识别的实体:Employee
、Competency
、Interview
和 Interview_note
。
在这方面,只有 Employee
table 缺失,但我相信您在某处有它。此外,您的设计非常灵活,因为它允许对同一面试、能力和员工进行多次 Interview_notes
。因此,可能缺少的是 id
谁做了笔记。或者,如果面试只有一套笔记,您可以考虑在 Interview
.
其中的一部分,也许还有一些缺失的注释数据(分数、满意度百分比或一些文本注释?)您的设计似乎达到了它的目的。
数据库引擎将很好地优化您必须执行的所有连接。也许通过将 _id
定义为主键来促进它的工作,如果你没有这样做的话。
我看不到其他优化:每个 table 清楚地代表一个不同的关系(在该术语的关系代数含义中)并且合并它们中的任何一个都将不可避免地导致次优的冗余模式。