规范化数据库模式

时间:2011-04-25 02:49:24

标签: database database-normalization

以下是3个物体 - A,B和C之间的关系 答:B - 1:M
答: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,每个都有一个维度。可以想象广告可以在多个部分上展示,而某个部分可以展开多个广告。因此,部分和广告之间的关系是多对多的,但限制是它们必须具有相同的维度。

2 个答案:

答案 0 :(得分:0)

您已经使用以下两种关系定义了B:C关系: 答:B - 1:M 答:C - 1:M

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


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

答案 1 :(得分:0)

我认为这是一个应该在代码中强制执行的业务规则。部分:广告为M:M已经标准化。

但是,我不确定你需要一个Dimension表,如果这就是你所想的那个例子中的'A'表。