Ciao,
secondo voi sono meglio 3 tabelle con relative FK
o una tabella unica che implementi l'algoritmo modified preorder tree traversal tipo questa

Codice PHP:
CREATE TABLE `locations` (
 `
idint unsigned NOT NULL AUTO_INCREMENT,
 `
parent_idint unsigned DEFAULT NULL,
 `
zipint unsigned DEFAULT NULL,
 `
placevarchar(255NOT NULL,
 `
lftint unsigned NOT NULL,
 `
rgtint unsigned NOT NULL,
 
PRIMARY KEY (`id`),
 
KEY `parent_id` (`parent_id`),
 
KEY `lt` (`lft`),
 
KEY `rt` (`rgt`)
ENGINE=InnoDB AUTO_INCREMENT=DEFAULT CHARSET=utf8