java - 是 M :N a bad style in OOP? 有没有更好的办法来管理 m :n relationships?

标签 java android oop object relationship

我必须编写一个 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/

相关文章:

android - Xamarin Forms - 如何创建图像叠加层?

c# - 抽象和封装有何不同?

java - 两种方式数据绑定(bind)SeekBar

java - 我的中断代码不会破坏我的代码

java - 使用 Spring 与 Java EE 6 注入(inject) JPA EntityManager

java - 单个查询与多个查询

java - 安卓面向对象编程

java - 构造函数 vs 方法 vs 工厂

java.lang.NoClassDefFoundError : org/springframework/core/ResolvableType

java - 一个 ArrayList 中的多个对象类型