【问题标题】:Create many-to-many relationship创建多对多关系
【发布时间】:2015-09-02 09:57:57
【问题描述】:

我需要在 userproject 实体之间建立多对多关系。目前,它们之间的关系是多对一的。我尝试在JDBC 中搜索如何进行多对多操作,但找不到任何有用的东西。我知道我需要第三个表来连接它们,但我真的不知道如何对其进行查询,以及我需要哪些额外的类。欢迎任何形式的帮助。到目前为止的代码是:

package com.TO;

public class User {
private String login;
private String password;
private String fullName;
private String role;

private String projectKey;

//constructor, setters and getters
}

package com.DAO;

import com.TO.User;
import com.Utills.JDBCUtil;

public class UserDAO {

  public static String getTableString(){
     String projectTable =  "create table user_db ( " +
                            "login varchar(20) not null, " +
                            "password varchar(20), " +
                            "full_name varchar(80), " +
                            "role varchar(2), " +
                            "project_key varchar(50), " +
                            "primary key(login))";
     return projectTable;
  } 
}

package com.TO;

public class Project {
  private String key;
  private String title;

  //constructor, setters and getters
}

package com.DAO;

public class ProjectDAO {

  public static String getTableString(){
    String projectTable =   "create table project ( " +
                            "project_key varchar(50) not null, " +
                            "title varchar(50), " +
                            "primary key(project_key))";
    return projectTable;        
  } 
}

PS:getTableString 方法在另一个类中用于创建表。

【问题讨论】:

    标签: java database jdbc many-to-many


    【解决方案1】:

    JDBC 不会在表之间创建关系,它允许您对数据库执行查询。您的问题与 JDBC 或任何其他从 java 代码访问关系数据库的方式无关。只需创建数据库模型即可。

    关系数据库中的多对多关系需要的是要链接的两个表之间的关系表。

    更多信息请见there

    【讨论】:

    • 谢谢:)。知道用于创建两个表之间的关系表的 sql 字符串应该是什么吗?
    • 哦,别担心,我刚刚发现主键可以是几个字段。这就解决了上一个问题。
    【解决方案2】:

    创建两个数组列表怎么样: 在用户和数组列表中实现以保存其所有项目:

     ArrayList<Project> elements = new ArrayList<>();
    

    在 Project 中,以及包含所有用户的数组列表:

     ArrayList<User> elements = new ArrayList<>();
    

    当用户被分配或从项目中删除时,您必须更新这些内容。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-10
      • 1970-01-01
      • 1970-01-01
      • 2011-07-04
      • 2017-04-30
      • 1970-01-01
      相关资源
      最近更新 更多