如何正确建模主/主/细节关系

时间:2018-01-30 13:47:06

标签: sql sql-server database-design

我想模仿的关系有点像这样:

  1. 一个主TextResource对象,用于存储高级共享的非本地化数据,如最大长度。
  2. 我们可以调用SourceText的一个单一细节对象,需要单独跟踪。
  3. 其余的详细对象,我们称之为TargetText。
  4. Source和TargetText对象都存储以特定语言本地化的字符串以及其他本地化数据。
  5. 但是存储在SourceText中的字符串是原始字符串,因此,即使数据模式相同,它们在功能上也不相同,并且这条数据需要存在并且每个TextResource主对象都是唯一的。
  6. basic scheme of the described objects

    我想到的选项是:

    • 常规主 - 详细信息表,但将SourceText ID存储在主表中 ...可能会创建循环引用?
    • 常规主 - 详细信息表,但在详细信息表中添加标志/类别列,将行标记为源或目标...虽然这可能会导致多个&# 34;来源"每个主人的详细信息,可以使源数据查询不那么直截了当
    • 源数据存储在主表中,即使这意味着在主表和详细信息表上都有类似的列(并在其上拧紧规范化)
    • 创建三个不同的表:master,main和detail。 Master(TextResource)和main(SourceText)将具有一对一的关系,而每个master可能有n个详细信息(TargetText)行,但除了Source和Target表将共享其大部分模式之外

    我看到了所有四种方法的好处和潜在问题,所以也许你可以帮我决定一个?

    我想要实现的目标归结为:

    • 每个资源只有一个源字符串
    • 能够轻松快速地查询文本资源及其源字符串
    • 能够轻松快速地查询给定资源的本地化字符串,包括Source one,
    • 能够存储每个本地化字符串的版本化数据,包括Source one
    • 当然,避免不良做法并遵守规范化

    提前致谢:)

0 个答案:

没有答案