t_wの輪郭

テーブルデータベース設計設計
『ユーザ情報を保存する時のテーブル設計 - そーだいなるらくがき帳』『Poolにおける残高管理の設計 - カンム テックブログ』『実践データベース設計 - Speaker Deck』CTISTI

CTI

2024/6/29 12:57:00

Class Table Inheritance
クラステーブル継承

CCI

2024/6/29 12:56:00

Concrete Class Inheritance
具象クラス継承

STI

2024/6/29 12:56:00

Single Table Inheritance
単一テーブル継承

EAV

2024/6/29 12:53:00

実体-属性-値モデル

あれ

2024/5/24 14:35:00

書きかけ

オブジェクト指向的な発想では、データベースにpersonというテーブルがあったときに、personテーブルのカラムとしてnameを持つことになる。そして、ソフトウェア開発の現場ではしばしば「personはnameを持つ」と呼ぶ。したがって「nameはpersonに属する」と認知されている。

しかし、発想を逆転すると、「あるpersonの個体(つまりレコード)は、あるnameの個体の集合に属する」という見方ができる。具体的かつ日本語にすれば、「personの個体であるところの田中さんは、nameの個体であるところの"田中"という集合に属している」。

上記をテーブルにするならば、personテーブル、nameテーブル、


ソフトウェア開発ではしばしば、「テーブル間の関係が1対1であると思われていたが、実は1対多だった」あるいは、「実は多対多だった」ということが発生する。実際、多くのプログラマーの認知に反して、人と名前の関係は1対1ではない。