创建这些表的最佳方法

时间:2012-06-18 19:42:28

标签: database normalization database-normalization

我有以下情况。

我们需要一个信誉表来评估用户和公司。

此声誉表将存储公司给用户的声誉,反之亦然。

有人建议我们应该创建两个声誉表,一个用于用户,另一个用于公司,两个都有相同的列。

我不认为这是最好的方法,但我找不到另一种解决方案。

我们还有其他办法吗?

THX

2 个答案:

答案 0 :(得分:1)

我认为你的方法不好;另一种解决方案是拥有一个抽象的Entity表,每个UserCompany都有自己的Entity记录(因而实体ID);那么你只能在一个Reputation表中跟踪两个实体之间的声誉。

另一种方法是拥有一个Reputation表,其中包含用户ID,公司ID和type(或direction,或模型中似乎符合逻辑的任何内容)字段,表示是否是用户给出的公司的声誉,或者相反。虽然看起来不太正常化。

答案 1 :(得分:0)

您将拥有一个公司表,其中包含该公司的唯一密钥。对用户而言相同。

我认为Co和User之间的关系是多对多的。

您还需要一个包含Co和User两个键的表,以及两个字段,一个用于Co-rep,另一个用于User-rep。共同密钥和用户密钥组合将是该表的唯一条目。