私は次のエンティティを持っています:住宅リスト、商業リスト、リースリスト、および各ユーザーの注目プロパティを保持する注目リスト。最も論理的なのは、スーパータイプ/サブタイプのアプローチを活用し、次のテーブルを作成するようです。
CREATE TABLE listings (
id ...,
listPrice ...,
...
PRIMARY KEY (id)
)
CREATE TABLE residential (
id ...
...
PRIMARY KEY (id),
FOREIGN KEY id REFERENCES listings(id)
)
CREATE TABLE featuredListings (
id ..,
userId ...,
featuredListingId ...
PRIMARY KEY (id),
FOREIGN KEY featuredListingId REFERENCES listings(id)
)
しかし、レジデンシャルテーブルを作成しようとすると、Mysqlはエラー「MySQLエラー番号1005。テーブル'レジデンシャル'を作成できません(errno:150)」を返します。
たぶん私のDDLが間違っています。それとも、MySQLで同時にFKであるPKを持つことさえ可能ですか?そうでない場合、そのようなシナリオに最適な設計は何ですか?