Redmineのプロジェクトと入れ子集合モデルのお話し

今回は、あまり聞き慣れない方もいるかもしれませんが「入れ子集合モデル」のお話です。

Redmineでは、プロジェクトの階層構造を管理するのに「入れ子集合モデル」を使用しています。

「入れ子集合モデル」による階層構造の表現については、詳しく解説したサイトもありますので、興味のある方はあわせてご覧ください。

Bitnami Redmine 3.3.3-1と、A5:SQL Mk-2 を例にお話します。

目次

Redmineにおけるプロジェクトの階層表示

次のようなプロジェクトの階層を作成してみました。通常は、プロジェクトの並び順を、カスタムフィールドのように自由に設定することはできません。

一覧画面でも階層表示されますが、プロジェクトは自動的に名前の昇順で表示されます。

プロジェクトの概要です。やはり、サブプロジェクトは名前の昇順に表示されます。

最後にプロジェクトの並び順を、チカラ技で変更する方法を紹介します️‍。

「A5:sql mk-2」で「projects」テーブルを表示

Redmineは、プロジェクトの設定を「projects」テーブルに保存しています。
「A5:sql mk-2」から確認すると、次のようなっています。

分かりやすくするため、表示項目を絞って、並び順を変更します。

表示フォントも少し大きくしてみましょう。
設定 > オプションの「全般」タブから変更できます。

「入れ子集合モデル」によるツリー構造の表現

準備も終わりましたので、本題に入ります。

サンプルのプロジェクトのツリー構造を、集合の包含関係として捉えなおして「入れ子集合モデル」で表すと、次のようになります。

Redmineでは、この入れ子集合モデルの各集合(プロジェクト)の左右の端を、X座標上の値で数値化してツリー構造を表しています。

プロジェクトlft (左端座標)rgt (右端座標)
Project A112
Project A123
Project A249
Project A2-156
Project A2-278
Project A31011
Project B1314
Project c1516

プロジェクトのX座標上の位置を入れ替えてみる

では、通常は名前の昇順に並んでいるプロジェクトのX座標上の位置を、次のように入れ替えてみます。

左端座標と右端座標の値も、実際に書き出してみます。

プロジェクトlft (左端座標)rgt (右端座標)
Project B12
Project A314
Project A145
Project A367
Project A2813
Project A2-2910
Project A2-11112
Project c1516

「A5:SQL Mk-2」から、projectsテーブルの値を変更しました。

Redmineで表示すると、意図した通り並び順が替わっていることが分かります。

●プロジェクト一覧画面

●プロジェクト概要画面

●プロジェクト管理画面

コメント

コメントする

目次