そういう、モデルなんです。

ビジネスモデル、設計図、模型などの現状と動向を考察、関連書籍の紹介

性別コードの国際標準 ISO/IEC 5218:2004 Information technology -- Codes for the representation of human sexes

DMBOKでは参照データ(リファレンスデータ)とかいわれているものについて、10年前に Evernote に書き溜めていたのをダンプしておく。

個人的には、DMBOKの参照データという表現には、あまり賛成できない。
「参照」というシンプルな単語が、利用部門の方々にとっては解釈が広する用語であり、仕様検討のさいには誤解を招きがち。リードオンリーという意味では正しいのだが。

なので個人的には、分類コード・分類名、区分コード、区分値などと呼んでいる。

それはともかく性別コードについては以下のような標準がある。

性別コードの規格 (ISO 5218, JIS X 0303)

 0 = Not known
 1 = Male
 2 = Female
 9 = Not applicable
JIS X 0303
◦1 = 男
◦2 = 女
ただし、JIS X 0303 は廃止されたらしく、また ISO 5218 に同じ内容が含まれているので、ISO 5218 に合わせておけばいいか。
攻めとか受けとか区別したい場合、エンティティには、このドメイン(性別コード)の項目が2つ必要かもしれない。

プルダウンにおける入力補助

アプリケーションが
プルダウン入力補助を適用すると指定しなかった場合:
・アプリケーションで設定されたデフォルトが有効(SELECTED)となる。
・区分値マスタから取得したとおりの表示順で表示される。

プルダウン入力補助を適用すると指定した場合:
・区分値マスタから取得したとおりの表示順で表示される。
・最優先の区分が、デフォルトとして有効(SELECTED)となる。

優先順:利用者が設定画面において登録した内容による。

設定イメージ

● 入力補助を利用しない(その都度選択または入力)
○ 次の値を既定値とする: 2 女性
○ 最近使った値を既定値とする(自動判定)
○ 下記期間において
  いちばん多く使った値を既定値とする
 ○ この[ 3]日間(本日を含む)  :0 不明
 ○ この[12]ヶ月(当月を含む)  :0 不明
 ○ [2011/6/1]から[2011/6/30]まで :0 不明

この数日間を判定するにあたり適用される
カレンダーの種類: 暦日

# 業務カレンダーを購入し利用している場合、
# それを選択できる

画面における表示イメージ

- 選択 -
0 不明
1 男性
2 女性
9 該当なし

方式上の留意点

・利用者が値を選択または入力して画面でコミットするたびに利用者ごと、区分用途ごとに、 利用回数、利用日を記録していく必要があるため、利用実績の更新に関してはキューを活用して非同期化することが望ましい。

・利用者数や対象の区分数が多くなるほど、より頻繁に利用実績が参照されることになるが、それがために画面アプリケーションのレスポンスが劣化することは許されないので、参照サービスについて自動スケールアウトやキャッシングができるような基盤や方式を選択し、スケーラビリティを死守すること。

・結果としては、区分値の既定値を設定するだけなので、これらの処理全体は区分値取得APIに組み入れること。(しかも性能は確保)

<以下はテンキー入力の仕様検討メモ>

=/*
 789-
 456+
 123
0  .

 = は、無いことが多い。
四則(/*-+)は無い場合もある。
 . は、ほぼ必ずある。

 ノートPCでは、-./はシフトキーなしで押せるが、
+*はシフトキー併用となるのでやや押しにくいため、
テンキーの場合不便だがシフトなしで押せる代替文字が必要

-> 利用者がどのようなキーボードを使っているかで登録させる必要がある。

3つとも出す場合、プルダウンが長くなってしまい結局不便。
それなら最初から選択されているだけのほうがマシ。1つに絞ること。

マイナスは区切りや、選択しないの意味で使われるのでダメ
アスタは、強調の意味で使われるのでダメ
ピリオドは見づらいのでダメ
スラッシュは、ラベル名
-> / になる。

最近使った       : -
いちばん使った          : --
お気に入りとマークした  : ---
・記号の入力回数は認識されないのでダメ

数値自動選択との併用は禁止(数値選択が死んでしまうので使いにくい。

テンキー選択をやるとしたら、

- 選択 -
0 不明
1 男性
2 女性
3 該当なし
/ 女性