1

以下是 3 个对象之间的关系 - A、B 和 C。
A:B - 1:M
A:C - 1:M
B:C - M:M,但它们必须共享同一个 A 实例。

我当前的架构如下。
a (id, data)
b (id, a_id, data)
c (id, c_id, data)
b2c (b_id, c_id)

如何设计更好的架构来避免数据不一致?

我知道这篇文章的标题有点笼统。如果你们中的任何人能想到一个更好的标题,请随意编辑这篇文章。


例如,我将开发一个用于生成广告墙的应用程序。一个广告墙分为很多sections。每个部分都有一个dimension(宽度和高度)。有很多ads,每个都有一个维度。想想一个广告可以在多个版块上展示,而一个版块可以有多个广告轮播。所以版块和广告之间的关系是多对多的,但限制是它们必须具有相同的维度。

4

2 回答 2

0

您已经使用这两个关系定义了 B:C 关系:A:B - 1:M A:C - 1:M

我不明白为什么需要 B:C 关系表。


鉴于您的示例,我只看到两个表。广告有宽度和高度,但存在 1:1 的关系,因此宽度和高度只是广告表中的字段。部分也与宽度和高度具有 1:1 的关系。只有两张桌子。我也没有看到广告和部分之间的严格关系。

于 2011-04-25T03:01:24.640 回答
0

我认为这是应该在代码中执行的业务规则。Section:Ad 作为 M:M 已经标准化。

但是,我不确定您是否需要一张Dimension桌子,如果这就是您在示例中认为的“A”表。

于 2011-04-25T03:14:28.833 回答