如何在类结构中实现主键和外键?

时间:2009-10-30 15:23:21

标签: class

这就是我想要实现的目标。我有一个集合(A..n)与类型集合(myLIST)的成员。在集合B中,我有一个“Alias”字段,我们可以将其表示为主键。

例如

A collection myLIST[0].Alias = 001
A collection myLIST[1].Alias = 002
A collection myLIST[2].Alias = 003
A collection myLIST[3].Alias = 001

在另一个集合中B.我的成员类型集合(myLIST)具有以下数据

B collection myLIST[0].Alias = 010
B collection myLIST[1].Alias = 001
B collection myLIST[2].Alias = 005

我想我的myLIST有一个引用(作为类引用)到具有相同Alias键的其他集合(A..n)myLIST。如果我更改A collection myLIST[0].Alias = 001的任何公共属性值,则更改将传播到具有相同别名“001”(作为参考)的其他myLIST collectin。使用上面的示例,对公共属性的更改将传播到

A collection myLIST[3].Alias = 001
B collection myLIST[1].Alias = 001

任何人都可以帮助我吗?

由于

2 个答案:

答案 0 :(得分:0)

钥匙是黑客。

关系数据库必须使用密钥,因为对表中行的位置施加了限制。它不能使用直接引用,因为在适当的关系数据库中不可能存在这样的引用。

对象可以包含对另一个对象的直接引用,而无需借助键或键查找或任何此类愚蠢。

答案 1 :(得分:0)

我不清楚你的对象之间的关系是什么。 +1以识别您正在使用的语言。不要考虑集合,而是考虑对象是如何相关的。例如:

  1. 如果每个A与0 ... n相关联 B,然后A有一个B的集合, 并且每个B都有直接参考 A(B有多对一 与A)的关系。
  2. 如果A可以与0 ... n相关联 B和B可以联系起来 0 ... m A,然后A有一个B的集合,而B有一个集合 如。这是多对多的 A和B之间的关系 在这种情况下,您可能需要创建一个 加入实体,AB,代表 多对多的关系。
  3. 如果您可以理顺对象图以使用直接引用,则不要存储相同A的多个副本,或使用别名查找内容。根据您使用的语言和数据源,您可能会发现Hibernate或LINQ等工具很有帮助。

    希望这有帮助!