1

次のような問題が手元にあります。

ユーザーとグループの間には多対多の関係があります。バックエンドには、それぞれのエンティティ クラスのテーブルと、ユーザーとグループの関連付けに関する情報を格納する交差テーブル User_Groups があります。グループ テーブルには 2 つの列があります。グループテーブルの構造は次のとおりです。


Table name - GROUP

CREATE  TABLE IF NOT EXISTS
GROUP
(
  GROUP_ID INT NOT NULL AUTO_INCREMENT ,
  NAME VARCHAR(50) NULL ,
  DESCRIPTION VARCHAR(50) NULL ,
  CREATED_DATE DATE NULL ,
  CREATED_BY VARCHAR(50) NULL ,
  MODIFIED_DATE DATE NULL ,
  MODIFIED_BY VARCHAR(50) NULL ,
  GROUP_TYPE_ID INT NULL ,
  PARENT_GROUP_ID INT NULL ,
  PRIMARY KEY (GROUP_ID) ,
  INDEX fk_groupTypeId_idx (GROUP_TYPE_ID ASC) ,
  CONSTRAINT fk_groupTypeId  FOREIGN KEY (GROUP_TYPE_ID )  
  REFERENCES efc_group_type (GROUP_TYPE_ID )
 ON DELETE NO ACTION
 ON UPDATE NO ACTION);
------------------------------------------------------------------------------------------
Table name - USER_GROUPS

CREATE TABLE IF NOT EXISTS
EFC_USER_GROUPS 
(
  USER_ID int(11) NOT NULL,
  GROUP_ID int(11) NOT NULL,
  CREATED_DATE date DEFAULT NULL,
  PRIMARY KEY (USER_ID,GROUP_ID),
  KEY FK_USERID_idx (USER_ID),
  KEY FK_GROUPID_idx (GROUP_ID),
  CONSTRAINT FK_GROUPID_USERGROUPS FOREIGN KEY (GROUP_ID) 
  REFERENCES efc_group (GROUP_ID),
  CONSTRAINT FK_USERID_USERGROUPS FOREIGN KEY (USER_ID) 
  REFERENCES efc_user (USER_ID));

parent_group_idは基本的に の外部コラムとして機能しますgroup_id。グループはサブグループを持つことができるため、parent_group_Id. 追加されたサブグループごとに、サブグループが追加されたそのグループの を保存しparent_group_idます。データモデルについてある程度理解できたので、私の問題が何であるかを説明します。

特定のユーザーのグループとサブグループ間の親子関係のツリーのような構造を構築しようとしています。したがって、特定の に対応して、user Id彼が属しているグループをテーブルから取得user_groupsできます。次に、グループを 2 つのリストにフィルター処理できます。1 つは親ノードを表し、もう 1 つはすべての子ノードを表します。これで、グループ間の階層がグループ テーブルに格納されます。Javaでそれを実装する方法を理解できません。私はすでにリストを持っていますが、そのリストでは、各グループがその上に親を持ち、その下に子供を持つことができます。上から下への階層を構築する方法を理解できません。私の唯一の目的は、親ノードを構成する XML を最後の子ノードまで構築し、それをフロントエンドに送信することです。

PS:私はかなりグーグルで検索しました。アイデアが不足しています:(。助けてください

4

0 に答える 0