作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我必须编写一个 Android 应用程序,我问自己是否有更好的方法来设计我的应用程序。
我的问题:我必须创建包含人员的组。在我的第一个 Activity 中,我想显示此人所属的所有组。当我单击一个组时,我想显示属于该组的所有人员。
问题:那么我需要 M:N 关系吗?这是一个糟糕的设计吗?他们是否有更好的想法来设计应用程序?
public class Person {
private List<Group> allGroups
}
public Group {
private List<Person> allGroupMembers
}
我已经搜索了大约 30 分钟,但找不到我的问题的答案。
我期待您的帮助。
最佳答案
您应该创建三个类:
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 类的实例
因此,如果您想获取人员 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)
关于java - 是 M :N a bad style in OOP? 有没有更好的办法来管理 m :n relationships?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44866594/
我是一名优秀的程序员,十分优秀!