Rom*_*iel 19 database android relationship ormlite
我正在玩ORMlite来制作一个包含表格和关系的模型.一种关系是多对多的关系.实现它的最佳方法是什么?
更具体一点:
假设我有这两张桌子
Product
id
brand
Purchase
id
Run Code Online (Sandbox Code Playgroud)
购买可以有几种产品,一种产品可以进行多次购买.使用ORMLite我可以@ForeignCollectionField在每个模型中有一个,但我认为它不会起作用.我看到的唯一有效的解决方案是制作第三个表Product_Purchase,以将产品和购买与多对一关系链接起来.
你们有什么想法?
Gra*_*ray 27
@ Romain的自我回答是正确的,但这里有更多关于后代的信息.正如他所提到的,有一个多对多ORMLite项目的示例,它演示了执行此操作的最佳方法:
该示例使用具有两个对象的id的连接表来存储关系.在@ Romain的问题中,连接对象将同时具有Product该Purchase对象.就像是:
public class ProductPurchase {
@DatabaseField(generatedId = true)
private int id;
@DatabaseField(foreign = true)
private Product product;
@DatabaseField(foreign = true)
private Purchase purchase;
...
}
Run Code Online (Sandbox Code Playgroud)
id字段从对象中提取,创建一个表,如:
CREATE TABLE `userpost` (`id` INTEGER AUTO_INCREMENT , `user_id` INTEGER ,
`post_id` INTEGER , PRIMARY KEY (`id`) )
Run Code Online (Sandbox Code Playgroud)
然后,您可以使用内部查询来查找Product与每个对象关联的对象,Purchase反之亦然.有关lookupPostsForUser()详细信息,请参阅示例项目中的方法.
自动执行此操作已有一些思考和设计工作,但现在ORMLite仅在内部处理一对多关系.
| 归档时间: |
|
| 查看次数: |
13718 次 |
| 最近记录: |