我必须编写一个Android应用程序,我问自己是否有更好的方法来设计我的应用程序。
我的问题:我必须创建包含Person的组。在我的第一个活动中,我想要显示Person所属的所有组。当我点击某个组时,我想要显示属于该组的所有人员。
问题:我需要M:N关系吗?这是一个糟糕的设计,是他们设计应用程序的更好的想法吗?
public class Person {
private List<Group> allGroups
}
public Group {
private List<Person> allGroupMembers
}
我已经搜索了大约30分钟,但找不到我的问题的答案。
我期待着你的帮助。
答案 0 :(得分:0)
您应该创建三个类:
public class Person {
private int id_person; (primary key)
....
}
public class Group {
private int id_group; (primary key)
......
}
public class PersonGroup {
private int id_person_group (primary key)
private int id_person
private int id_group
....
}
PersonGroupe代表人与群体之间的关系。
因此,如果一个人A存在于Groupe X中,那么你应该有一个PersonGroup Class的实例
因此,如果你想得到所有人,那么人X就是其中的一部分。你使用这个查询(
Select * from Group
Join PersonGroupe on PersonGroupe.id_group = Group.id_group
where PersonGroupe.id_person = X.id_person (id_person of X)
如果你想让Groupe Y所有人参与其中:
Select * from Person
Join PersonGroupe on PersonGroupe.id_person = Person.id_person
where Groupe.id_group = Y.id_group (id_group of Y)
答案 1 :(得分:0)
在每个班级或单独的JOIN课程中使用子列表是一个观点问题。
每个类中使用List解决的最大问题是循环依赖。