gpt4 book ai didi

database-design - 数据库设计问题

转载 作者:行者123 更新时间:2023-12-01 08:03:11 25 4
gpt4 key购买 nike

我的数据库中某处有以下结构 database structure

在所有级别上,都存在零对多关系(即 Job 可能有多个 Documents,而这些 Documents 可能有多个 Unit可能有多个翻译)。

没有 Assignment(目前还没有 - 因此是虚线)它工作得很好,我对数据库设计感觉很好。

每个翻译 都必须由某人(一些外部承包商)处理。每个工作都会分配多个承包商,Assignment 表应该对这些承包商分配进行建模。基本上,任务工作翻译在承包商之间的分配。

为什么我需要在数据库中显式存储Assignments而不是,例如直接为每个Translation分配Contractor?因为我需要存储有关每个作业的一些统计信息。

域给出的约束很少:

  • 单个 Assignment 不会跨越多个作业,如果描述不清楚(也就是说, 中也可能有 Job 外键分配表)
  • 属于给定分配的所有翻译具有相同的语言(也就是说,也可以有语言 赋值中的外键)

我到底有什么问题?

  • 如何实现这些域限制?
  • 我不知道在 Assignment 实体中包含 JobLanguage 值是否好。两者都是由 Assignment 唯一确定的,因此它们可能在那里。这可能与第一个问题密切相关。

1) 如果我不把 JobLanguage 放在 Assignment 中,这会让我的生活变得更加困难,例如,我想列出给定 Job 和给定 Language 的所有作业(我经常这样做)。

2) 如果我将JobLanguage 放在Assignment 中,它将在模式中创建一个循环(Job -> 任务 -> 翻译 -> 单位 -> 文件 -> 工作 strong>) 和附加约束的必要性:对于每个 Assignment,它的 Language 必须与其所有 Language 相同>TranslationsJob

也一样

你会如何解决这个问题?

非常感谢。

最佳答案

enter image description here

我想,这其中的大部分应该是显而易见的,请注意,每个单元都可以交给多个承包商进行翻译——如果一个失败,或者并行进行。对于每个 UnitTranslationTranslationAssignmentNo 可以是 {1,2,3..}——在大多数情况下,它是 1

编辑

也许将作业移动到 UnitTranslations 的集合会更好,这样如果相同的文档需要翻译成新的语言,将来可以打开一个新的作业。 enter image description here

关于database-design - 数据库设计问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6890102/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com