我有 3 个表,,USER
(ENTRY
用于输入的产品,不需要创建 PRODUCT 表),和USER_COLLECTION
,这是一个介于USER
和之间的表ENTRY
,因为一个条目可以有多个用户。
基本上:
用户 =USERID | USER_NAME
条目 =ENTRYID | ENTRY_NAME | ENTRYPRICE | ENTRY_DATE
收藏 =COLLECTIONID | ENTRYID | USERID
我有一张表,其中包含在整个项目中持续存在的用户。他们可以创建条目(通常是某种带有价格的产品),并且可以将多个用户链接到某个条目(可以从列表中选择,因此用户在整个项目中保持不变)。
例如,我的表格如下所示:
User
--------------------------
user_id | user_name
--------------------------
1 | 'FOO'
2 | 'BAR'
3 | 'FOOBAR'
ENTRY
-----------------------------------------------------------------------
entryid | entry_name | entry_price | entry_date
-----------------------------------------------------------------------
0 | 'Banana' | 2.50 | 12/12/2012
COLLECTION
---------------------------------------
collectionid | entryid | userid
----------------------------------------
0 | 1 | 1
1 | 1 | 2
2 | 1 | 3
我有一个香蕉,价格为 2.50,有 3 个用户链接到它,Foo、Bar 和 Foobar。
现在,我想在我的应用程序中使用它并获取数据;除了我不知道从哪里开始。我尝试选择条目数据,使用该 ID 循环遍历集合数据,但这意味着我打开了两个游标并且它不起作用。尝试创建一个连接,但我不能真正做出一个好的连接,主要是因为:
JOIN
---------------------------------------
collectionid | entryname | username
----------------------------------------
0 | Banana | FOO
1 | Banana | BAR
2 | Banana | FOOBAR
我无法遍历这个,因为我会在我的 Android 代码中创建多个相同的条目对象......
希望我对此很清楚。
if (cursor2.moveToFirst()) {
do {
Item i = new Item(<GET STUFF FROM CURSOR>);
i.addUser(new Person(<GET STUFF FROM CURSOR>)));
Log.d("TAG", i.getUsersPaying().size() + "");
} while (cursor2.moveToNext());
}
如果我使用它,我会创建 Item i 的多个实例。它们都是香蕉,而我应该只有 1 件香蕉,并添加了多个用户。