場所をテーブルに保存することを目指していますが、ある場所を保存するだけでなく、別の場所にもリンクしたいと考えています。
例: "Palm Beach" という値で、これを "Florida" と "USA" にリンクして住所を作成します。
Palm Beach, Florida, USA
アイデア番号1 国、都市、町などを保持する1つのテーブルですが、「親」にリンクしています。
CREATE TABLE location {
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
parentid
FOREIGN KEY parentid REFERENCES Employee (EmployeeID),
name VARCHAR (100) NOT NULL UNIQUE,
loc VARCHAR (17) NOT NULL,
rad VARCHAR (17),
added DATETIME DEFAULT NOT NULL
};
アイデア 2: 同じシステムだが、レベルごとに別のテーブルを使用する
CREATE TABLE locality (
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
name VARCHAR (100) NOT NULL UNIQUE,
loc VARCHAR (17) NOT NULL,
rad VARCHAR (17),
added DATETIME DEFAULT NOT NULL,
FOREIGN KEY id REFERENCES administrative_area_level_1 (administrative_area_level_1),
};
CREATE TABLE administrative_area_level_1 (
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
name VARCHAR (100) NOT NULL UNIQUE,
loc VARCHAR (17) NOT NULL,
rad VARCHAR (17),
added DATETIME DEFAULT NOT NULL,
FOREIGN KEY id REFERENCES administrative_area_level_2 (administrative_area_level_2),
);
CREATE TABLE administrative_area_level_2 (
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
name VARCHAR (100) NOT NULL UNIQUE,
loc VARCHAR (17) NOT NULL,
rad VARCHAR (17),
added DATETIME DEFAULT NOT NULL
);
ある出発点から構造全体を取得できるようにしたいのです。たとえば、「パーム ビーチ」を検索して、それが米国からのものであることを取得できるようにしたいと考えています。
これに対する最善のアプローチについて誰かが私に意見を与えることができますか?
編集:これは私が使用したい構造だと思います: https://stackoverflow.com/a/317536/1738522