LoginSignup
1
0

More than 5 years have passed since last update.

オブジェクトの属性「年齢」って何?

Posted at

 これが、例えば「入社時の年齢」や「誕生日」であればわかりますが、「年齢」となると、それはある時点での数値ですから随時計算が必要になりますね。しかもその「ある時点」とはいったい何でしょう?
ウィキペディアのように、その人物を「照会した時点」で動的に計算するというイメージでしょうか。つまりいずれにしても仕様が曖昧ということですね。

 人物オブジェクトの属性を考えるとき、安易に「年齢」を使用しますが、話が「永続化」に進むとき、それは慎重であるべきです。というのも(故人でなければ)「年齢」は時間に対して可変であり、また「誕生日」から導出できる情報だからです。
  例えば、売上データで「合計金額」は商品の「単価」と「数量」から導出されるものであり、通常永続化すべき情報ではありません。何故なら、後日、単価や数量に変動があった場合、データベースを矛盾なく修正するには大きなコストがかかる(*注1)ことと同時にその対応自体がナンセンスだからです。

  以上のことはデータベースの論理設計において正規化を行う上で吟味するとよいでしょう。


*注1)データベースの関連個所を一斉に更新するバッチ処理が必要となり、またその実施タイミングを含め大きな課題となる。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0