私はここに来て、皆さんからの一種の「ベストプラクティス」タイプのアドバイスを求めたいと思うほど、私を悩ませている何かに出くわしました (et gals)
モデルにテーブルがあります。それを と呼びましょうprospect
。2 つの別個の外部システムが、このテーブルの行の更新を提供できますが、それぞれのシステムでのそのレコードの「ステータス」としてのみ提供されます。
これらのステータスをローカルに保存する必要があります。もちろん、最初のアイデアは、2 つの null 許容外部キーを作成することだけでした。このようなもの。
+-----------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------------+--------------+------+-----+---------+----------------+
| prospect_id | int(11) | NO | PRI | NULL | auto_increment |
| ext_status_1_id | int(11) | YES | | NULL | |
| ext_status_2_id | int(11) | YES | | NULL | |
+-----------------+--------------+------+-----+---------+----------------+
この例では、もちろん、ステータスの ID/値のペアを保持する 2 つのテーブルがあります。
ここにキャッチがあります-ext_status_2_id
そうでない限り、常にNULLになりますext_status_1_id
(1
これがビジネスルールの仕組みです)。
これを正しくモデル化しましたか? ext_status_2_id
脳の奥にこのしつこい声があり、「見込みのあるすべての行が必要になるわけではないので、これは正しくない可能性があります」と言っています。
問題があれば、これは MySQL 5.0.45 で、私は InnoDB を使用しています。