我是Parse.com
的新用户。我有关于加入课程的问题。使用SQL很容易,但我找不到Parse的解决方案。谢谢你的帮助!
我有两个课程:ProductDatabase
和MachineDatabase
。
我想显示以下数据:名称,描述,价格,日期。
- (PFQuery *)queryForTable
{
PFQuery *productQuery = [PFQuery queryWithClassName:@"ProductDatabase"];
PFQuery *query = [PFQuery queryWithClassName:@"MachineDatabase"];
[query whereKey:@"serialNumber" matchesKey:@"serialNumber" inQuery:productQuery];
[query includeKey:@"name"];
[query includeKey:@"description"];
[query includeKey:@"price"];
[query orderByDescending:@"date"];
return query;
}
// In my (UITableViewCell *)tableView:(UITableView *) tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath object:(PFObject *)object
cell.nameLabel.text = [object objectForKey:@"name"];
cell.textLabel.text = [object objectForKey:@"description"];
cell.priceLabel.text = [object objectForKey:@"price"];
NSDate *productDate = [object objectForKey:@"date"];
NSString * dateString = [self timeSincePublished:productDate];
cell.dateLabel.text = dateString;
此代码显示日期,但不显示名称,描述,价格。
你知道如何加入这两个课程吗?
谢谢!
答案 0 :(得分:3)
您正在以RDBS方式思考它,并且它对于像Parse这样的工具来说并不理想。您可能需要对架构进行一些重组。理想情况下,您应该尝试使用Parse中的指针(假设您的是一对多或一对一的关系)。
所以你的班级结构如下:
ProductDatabase:objectId,serialNumber,名称,描述,价格, 计算机 MachineDatabase:objectId,serialNumber,date,idMachine
如果serialNumber不是特定于Product和Machine,则可以将其保留在任何一个类中。字段' 计算机 '在ProductDatabase中应该是指向MachineDatabase中特定行的对象指针。
PFQuery *query = [PFQuery queryWithClassName:@"ProductDatabase"];
[query includeKey:@"machine"];
includeKey 关键字将展开关系字段 计算机 ,并将MachineDatabase中相应行的字段添加到结果。
[query findObjectsInBackgroundWithBlock:^(NSArray *products, NSError *error) {
for (PFObject *product in products) {
// Machine row will be an object inside the retrieved product row.
PFObject *machine = product[@"machine"];
NSLog(@"retrieved related machine: %@", machine);
}
}];