0

我参与了一个为项目中的人力资源创建知识库的项目。在对问题的一小部分进行 ER 模型时,一个疑问向我袭来:考虑到效率、良好的设计实践和数据库规范化,这是建模它的首选方式。该应用程序将在 .NET 中开发,但可以使用例如 php 进行查询。我们有 4 个级别的实体代表我们的知识库:

1   Supertopics
1.1   Topics
1.1.1   Subtopics
1.1.1.1   knowledge
  

我是两种可能的关系实现之一:

选项 1 - 如果使用弱实体,每个表将有一个组合键:一个唯一的 Id 加上之前级别的外表的键。由于复制所有先前级别的键,因此使用此模型制作复杂的报告似乎更好。

  • 超级主题(IDSupertopic,...)
  • 主题(IDSupertopic,IDTopic,...)
  • 子主题(IDSupertopic,IDTopic,IDSubtopic,...)
  • 知识(IDSupertopic、IDTopic、IDSubtopic、IDKnowledge...)

选项 2 - 如果使用强实体,每个表将有一个简单的唯一键,以及来自上一级对象(表)的外键。由于表键的简化,管理这种模型似乎更容易。

- supertopic (ConsecutiveKey,...)
- Topic (ConsecutiveKey, IDSupertopic, ...)
- subtopic(ConsecutiveKey, IDTopic...)
- knowledge(ConsecutiveKey, IDSubtopic...).

谁能给我一些与每种可能性的优缺点相关的建议?

4

0 回答 0