0

假设我们有表用户,如:

..ID..用户名

  1. 用户1
  2. 用户2
  3. 用户3

用户可以拥有账单(user -> have_many -> bill关系)。

表账单如:

..ID..user_id

  1. 1
  2. 2
  3. 2

我们也有产品,因此每个产品只能与一个账单(product -> has_one -> bill关系)相关联。

表产品如:

..ID..bill_id

  1. 2
  2. 3
  3. 1

因此,如您所见,我们的用户可以拥有很多产品(通过账单)。

我的问题:

由于数据库规范化,将第二个外键添加到名为 PRODUCTS 的表中以user_id快速从 PRODUCTS 表中选择所有用户的产品是否正确,或者它不正确,我应该使用 JOIN 语句来选择所有用户的产品?

PS对不起,脏表绘图)

4

2 回答 2

2

我宁愿使用规范化视图(产品表中没有user_id)。

作为最后的选择,我唯一会考虑这一点的是性能是否真的需要它。

于 2012-08-08T04:38:13.117 回答
1

通常最好对数据进行规范化,以免重复信息并保持数据一致性。

然而,在现实生活中的系统中需要一些例外,通常是在处理大量数据时出于性能原因。

于 2012-08-08T04:39:29.323 回答