ページ/名前の一部。システム内部で使う名前。

ページ名が変更されてもこちらは変更しない。

ページ/名前ひとつに対して複数あるID。の名前。システム内部で使う。

内部名」よりもページIDID」としたほうが分かりやすそう。ページインスタンスであるのID。

見解は変更されることが無いので、そのまま内部名の一部にしてもいいかも。
ページ名:見解f12o:0 → E3839AE383BCE382B8-f12o-0

…みたいに。

同じ内部名を持つページは複数あるので、内部名だけではページ実体の特定はできない。同名ページが複数あってもIDで区別できる。IDはページ/履歴の要素であるのIDなので、ページ編集しても引き継がれるけど、ページ編集してもフォークしても引き継がれない。

また、ページ名が変更されてもそれは次のでのことなので、影響なし。こちらは変更しない。

見解IDも番号もページIDには依存しない。

番号は見解IDに依存するので、だけを他の見解に移動することが可能なら番号を付け直す必要がある。

見解は変更されることが無いので、そのまま内部名の一部にしてもいいかも。
ページ名:見解f12o:0 → E3839AE383BCE382B8-f12o-0

…みたいに。
  • そのままファイル名などにできる
  • ページ名変更がシステムに影響しなくなる
  • 同じ名前のページが複数あっても大丈夫
    見解IDも番号もページIDには依存しない。

    番号は見解IDに依存するので、だけを他の見解に移動することが可能なら番号を付け直す必要がある。

内部名利用者に見せない。
  • そのままファイル名などに利用できる文字列
  • ページ名変更しても変わらない名前
  • 同じ名前のページが複数あっても、内部名で区別できる
    ページIDでなら区別できる。

実装 Edit


内部名利用者に見せない。パーマリンク特定版リンク)では見える。

内部名ページ属性ではない。

永続化キーそのもの。

:i/内部名は版IDだけ Edit


内部名」「外部名」という言葉は不要になった。IDとページ名があればいい。

:Done/内部名のフォーマット Edit


内部名に含めない?

違いを管理せずとも内部名が分かるようになるが、必要ない。

:/やっぱり外部名と内部名は一対一 Edit

外部名 1←→* 内部名 1←→1 ページID 1←→* 特定ID (数字は多重度)

…では?同名ページすべてのページ名を変えるとは限らないので。そして内部名ページIDと同一。一方を省略可能。

→ で、こうなる。
外部名 1←→* 内部名ページインスタンスのID) 1←→* 特定ID (数字は多重度)

ページを参照するのに必要なのは特定ID。内部名ページ名変更で明示的リンクを維持するためのもの。(明示的リンクページ名で指定されるので、内部名に変換して保存)

実装 Edit

思い付き Edit


ページ名クラス。

項目名、見解ID、番号

ファイル名として使えるように区切りは「_」

内部名永続化キーそのもの。ページ/履歴のひとつでもある。

内部名ページ名の分だけ Edit


ページ名にのみ内部名を用意。他の区分はシステムが生成するIDだけなので、内部/外部ともにそれでいい。

メジャーID、マイナーID Edit


編集をするとが変わる。それでも同じページには同じ内部名であって欲しいので、編集ごとに変わる部分と変わらない部分とに分ける。

ユーザーが決められる部分…ページ名(+ディレクトリ名)→メジャーID

内部名ページ名に対応するもの。同名ページは複数あるので特定のページが持っていてはいけない情報。

見解名は上位の名前(ページ名)に依存、合わせないと意味を成さないし、ページ名を指定しないと見解名のリストアップもできない。番号も上位2つを指定しないとリストアップ不可能。

独立できるのはページ名だけ。→内部では分ける。メジャーID依存しているのをマイナーIDとして、2部構成に。

Entry:Side:Rev → Major:Miner

:Done/内部名のフォーマット Edit


ファイル構成は内部名依存。Major(Entry)を指定するとMiner(Side:Rev)をリストアップ可能。3層にそれぞれ代表があるから、どれが欠けていても扱うべき内部名は得られるけど。

内部名に含めない?

違いを管理せずとも内部名が分かるようになるが、必要ない。

辞書ファイルはEntryごと:編集があるたびに更新しなければならないので。EntryのメジャーIDと同じ生存期間。ページ名リストは1つじゃないと意味をなさない