Datenbank-Datensatz kleines Problem

  1. Was die Rolle des Fremdschlüssels ist, Fremdschlüssel auf die anderen Seite von zwei verknüpften Tabellen hinzugefügt.
    Effekt: Aufrechterhaltung der Datenkonsistenz, Integrität, der Hauptzweck der Steuerdaten in dem externen Schlüsseltabelle gespeichert. Verband ist so ausgebildet, dass zwei Tabellen, die Fremdschlüsselwerte oder Referenz nur Nullen in den äußeren Spalten .
    Welche der Fremdschlüssel in einer Tabelle: gliedert sich in die folgenden Situationen:
  • Erstens müssen die Fremdschlüsselspalten in der Primärtabelle referenziert die Primärschlüsselspalte oder eine eindeutige Spalte sein.
  • Also 1: n bestätigte den Fremdschlüssel basierend auf n der Tabelle.
  • 1: in der Regel 1, um zu sehen, wer die Master-Tabelle ist, die Tabellen, Fremdschlüssel angebracht ist, natürlich, eine Tochtergesellschaft in der Tabelle zu etablieren.
  • n: wobei m, ist es notwendig , eine Beziehungstabelle zu schaffen, die ursprünglichen zwei Tabellen und Beziehungen sind 1: n, 1: m
    Beispiele für (viele):
    Rolle Tabelle
    Hier hat Bild einfügen Beschreibung
    Benutzertabelle
    Hier hat Bild einfügen Beschreibung
    Information Table (Fremdschlüssel versehen hier)
    Hier hat Bild einfügen Beschreibung

Der Fremdschlüssel in der Kontaktliste.

  1. viele verschachtelte Abfrage Mybatis der
    Rolle: Wenn Mybatis verwenden, wenn wir eine Verbindung zwischen dem Tisch und der Tisch auftreten, können Sie eine verschachtelte Abfrage verwenden
    Beispiel oder die Verwendung der oben:
public class UserInfo {
    private String uid;

    private String username;

    private String name;

    private String password;

    private String salt;

    private Integer state;
	//新建一个roles,用来接受联系表的数据
    private List<SysUserRoleKey> roles;

    public List<SysUserRoleKey> getRoles() {
        return roles;
    }

    public void setRoles(List<SysUserRoleKey> roles) {
        this.roles = roles;
    }
 }
public class SysUserRoleKey {
    private String roleId;

    private String uid;
	//与role的类是一对一的关系
    private SysRole role;

    private UserInfo userInfos;
}

resultMap

<resultMap id="UserAndRole" type="com.example.demo.Model.UserInfo">
    <id column="uid" jdbcType="VARCHAR" property="uid" />
    <result column="username" jdbcType="VARCHAR" property="username" />
    <result column="name" jdbcType="VARCHAR" property="name" />
    <result column="password" jdbcType="VARCHAR" property="password" />
    <result column="salt" jdbcType="VARCHAR" property="salt" />
    <result column="state" jdbcType="INTEGER" property="state" />
    <collection property="roles" ofType="com.example.demo.Model.SysUserRoleKey">
      <id column="role_id" jdbcType="VARCHAR" property="roleId" />
      <id column="uid" jdbcType="VARCHAR" property="uid" />
      <association property="role" javaType="com.example.demo.Model.SysRole">
        <id column="role_id" jdbcType="VARCHAR" property="roleId" />
        <result column="available" jdbcType="INTEGER" property="available" />
        <result column="description" jdbcType="VARCHAR" property="description" />
        <result column="role" jdbcType="VARCHAR" property="role" />
      </association>
    </collection>
  </resultMap>

Abfrage

</select>
  <select id="selectUserRole" resultMap="UserAndRole" parameterType="java.lang.String">
    select sr.role_id ,sr.available,sr.description,sr.role,各种你需要的属性
    FROM user_info  u
    left join  sys_user_role  sur ON u.uid=sur.uid
    left join sys_role  sr ON sur.role_id=sr.role_id
  </select>
Veröffentlicht 36 Originalarbeiten · erntete Lob 11 · Ansichten 10000 +

Ich denke du magst

Origin blog.csdn.net/s_xchenzejian/article/details/97039257
Empfohlen
Rangfolge