は、2つのテーブルを持って、「機関」と「エリア」
は、「エリア」とはすなわちAREA_ID自体にリンクすることを許可し、
にあなたが常にAREA_IDに研究所をリンクして、内部ロジックこの道をparent_area_idその地区が地区か都市かと判断できます。
あなたが今
institutions (
id UNSIGNED INT NOT NULL PK AI,
area_id UNSIGNED INT NOT NULL,
name VARCHAR NOT NULL
)
と
areas (
id UNSIGNED INT NOT NULL PK AI,
parent_area_id UNSIGNED INT NOT NULL DEFAULT 0,
name VARCHAR NOT NULL,
type ENUM('city','district') NOT NULL DEFAULT 'city'
)
を持っているので、areas.typeフィールドはオプションですが、あなたがそのように定義したい場合は、その後の内部ことを行う方法であってもよいことデータベース(それ以外の場合は、parent_area_id = 0なら都市、それ以外は地区)
このようにして、フィールドを選択すると、
SELECT *
FROM institutions
INNER JOIN areas
ON areas.id = institutions.area_id
あなたは機関がリンクへのAREA_IDところ、地区や都市のテーブルに行くべきかどうかに対して何ら疑問符がありません100%特定することができ、間違いなく順番に中地区と都市を扱うどの領域テーブルに起こっていますあなたのフロントエンドが都市または地区として解釈できる形式で情報を提示します。あなたが本当にたとえば、常に機関がこのパターンが多形と呼ばれる都市
あなたの答えはもっと近いようですが、誰かが別の良いアイデアを持っているかもしれません:) – Denees
あなたの初期テーブル設定は、汚れた。あなたがそれを丸いペグに変えることができるときに丸い穴にこの正方形のペグを強制しようとするだけで愚かなようです。この問題を複数回、ホテルを地理的エリアに分類して扱ったことがあります。私の提案はちょうどfyiに基づいています。 –
あなたの提案は何ですか? – Denees