一个产品有一个价格,一个价格有一个产品 - 有一个nhibelnate关系?

时间:2012-08-20 19:27:52

标签: database nhibernate mapping fluent

我对'I Think You Mean A Many To One' article上的一对一关系解释感到有点恼火。

例如,在这种情况下,产品只有一个价格,因为有问题的业务很小,利基,本地化并且仅支持单一货币。在这种情况下,每个产品的多个价格没有意义?我很怀疑我是否正确地掌握了这个概念,因为我读到的每个地方都说它可能是多对一的,即使你认为它不是?

请问有人可以开导我吗? :)

2 个答案:

答案 0 :(得分:3)

试图获得更多声望,以便我可以在评论中提供帮助而不是“回答”一对多与一对一就是这个

查看一对一作为您正在查看的表格的扩展名。

表B扩展了表A.这意味着信息不一定足以直接包含在表中,但彼此之间具有双向关系。基本上意味着如表A所示,我不依赖于表B中的信息,但表B的信息非常依赖于我。对于价格示例,这意味着表A有一个与表B中的行相关的行。因此,如果您在Price表中输入每个项目中的唯一信息以匹配表A,那么这将是有用的。比如你有一个关于价格表中项目的描述栏。否则,在这种情况下,价格表可能与架构中的价格无关。

在一对多关系中表B通常没有参考表A.因此,在价格的情况下,您正在查看的商品确实有价格,但价格并非专有。因此,为了更好地定义,许多东西可能有9.99的价格,但9.99只需要在您的定价表中存在一次。

答案 1 :(得分:0)

我不熟悉你提到的那篇文章。然而,价格是一个缓慢变化的维度的典型例子。价格可以在任何时间点保持不变,但随着时间的推移,价格会发生变化。

此类维度通常通过在相关期间设置有效和结束日期来实现。

现在,在给定的时间点,产品可能只有一个价格。影响价格的事情 - 优惠券,购买者的折扣,例如批量折扣 - 不是产品的属性。这些是交易的属性。

也就是说,可能存在固定数量折扣没有意义的情况。因此,产品的“价格”可能包括数量和时间。

无论如何,我同意你的看法,价格不是1-1关系的好例子。还有其他因素,如时间和数量,会影响它。