获取外键对象的主要解决方案是什么?
我有两个表:获取外键对象的主要解决方案是什么?
人员:(ID,姓名)
地址:(ID,地址,是PersonID)
这意味着每个人都有一些地址。 我有与每个表和每个外键对象的属性相关的对象。在这个例子中:
Class Persons
{
int id;
string name;
}
Class Addresses
{
int id;
string address;
Persons person;
}
当我想让所有的人与他们的地址我使用左连接。我创建了一个Address类的集合,并使用“person”属性到达每个Person。
但在某些情况下,有些人没有任何地址。我如何使用这种方法访问我的对象中的那些人。这种情况最好的方法是什么?
感谢,
我搜索,发现这个解决方案:
Class Persons
{
int id;
string name;
AddressesCollection addresses;
}
Class Addresses
{
int id;
string address;
Persons person;
}
你需要的人的集合,包含了所有没有地址的人。 您也可以创建一个虚拟地址,并将其与所有没有它的人联系起来。
这听起来像是“Hacky” – Manish 2012-01-31 11:46:10
这不是一个结构性的解决方案。 :| – breceivemail 2012-01-31 11:50:40
是的,但是你可以使用左连接和合并来完成数据库中的黑客攻击。如果您想使用地址访问人员,您需要虚拟地址。 – 2012-01-31 12:16:17
,你应该做的事情是当前映射的逆过程,即,
Class Person
{
int Id;
string name;
Address address;
}
Class Address
{
int Id;
string Address;
}
这样你就可以将人映射到他的地址。如果一个人拥有多个地址,则可以使用一组地址。
对于你的班级名称而不是Person,而不是Persons,因为每个对象都指向一个实体。
你为什么不使用JPA。 http://www.oracle.com/technetwork/articles/javaee/jpa-137156.html – 2012-01-31 11:31:39
我在Android上使用这种方法 – breceivemail 2012-01-31 11:33:35
这个类的名字应该是“Person”,而不是“Persons”:) – Manish 2012-01-31 11:34:11