2010-06-13 70 views
0

我的用戶表結構保存多層次模型和他的ADRESS細節如下問題在誼

CREATE TABLE tbl_users (
    id bigint(20) unsigned NOT NULL AUTO_INCREMENT, 
    loginname varchar(128) NOT NULL, 
    enabled enum("True","False"), 
    approved enum("True","False"), 
    password varchar(128) NOT NULL, 
    email varchar(128) NOT NULL, 
    role_id int(20) NOT NULL DEFAULT '2', 
    name varchar(70) NOT NULL, 
    co_type enum("S/O","D/O","W/O") DEFAULT "S/O", 
    co_name varchar(70), 
    gender enum("MALE","FEMALE","OTHER") DEFAULT "MALE", 
    dob date DEFAULT NULL, 
    maritalstatus enum("SINGLE","MARRIED","DIVORCED","WIDOWER") DEFAULT "MARRIED", 
    occupation varchar(100) DEFAULT NULL, 
    occupationtype_id int(20) DEFAULT NULL, 
    occupationindustry_id int(20) DEFAULT NULL, 
    contact_id bigint(20) unsigned DEFAULT NULL, 
    signupreason varchar(500), 
    PRIMARY KEY (id), 
    UNIQUE KEY loginname (loginname), 
    UNIQUE KEY email (email), 
    FOREIGN KEY (role_id) REFERENCES tbl_roles (id), 
    FOREIGN KEY (occupationtype_id) REFERENCES tbl_occupationtypes (id), 
    FOREIGN KEY (occupationindustry_id) REFERENCES tbl_occupationindustries (id), 
    FOREIGN KEY (contact_id) REFERENCES tbl_contacts (id) 
) ENGINE=InnoDB; 

CREATE TABLE tbl_contacts (
    id bigint(20) unsigned NOT NULL AUTO_INCREMENT, 
    contact_type enum("cres","pres","coff"), 
    address varchar(300) DEFAULT NULL, 
    landmark varchar(100) DEFAULT NULL, 
    district_id int(11) DEFAULT NULL, 
    city_id int(20) DEFAULT NULL, 
    state_id int(20) DEFAULT NULL, 
    pin_id bigint(20) unsigned DEFAULT NULL, 
    area_id bigint(20) unsigned DEFAULT NULL, 
    po_id bigint(20) unsigned DEFAULT NULL, 
    phone1 varchar(20) DEFAULT NULL, 
    phone2 varchar(20) DEFAULT NULL, 
    mobile1 varchar(20) DEFAULT NULL, 
    mobile2 varchar(20) DEFAULT NULL, 
    PRIMARY KEY (id), 
    FOREIGN KEY (district_id) REFERENCES tbl_districts (id), 
    FOREIGN KEY (city_id) REFERENCES tbl_cities (id), 
    FOREIGN KEY (state_id) REFERENCES tbl_states (id) 
) ENGINE=InnoDB; 

CREATE TABLE tbl_states (
    id int(20) NOT NULL AUTO_INCREMENT, 
    name varchar(70) DEFAULT NULL, 
    PRIMARY KEY (id) 
) ENGINE=InnoDB; 


CREATE TABLE tbl_districts (
    id int(20) NOT NULL AUTO_INCREMENT, 
    name varchar(70) DEFAULT NULL, 
    state_id int(20) DEFAULT NULL, 
    PRIMARY KEY (id), 
    FOREIGN KEY (state_id) REFERENCES tbl_states (id) 
) ENGINE=InnoDB; 


CREATE TABLE tbl_cities (
    id int(20) NOT NULL AUTO_INCREMENT, 
    name varchar(70) DEFAULT NULL, 
    district_id int(20) DEFAULT NULL, 
    state_id int(20) DEFAULT NULL, 
    PRIMARY KEY (id), 
    FOREIGN KEY (district_id) REFERENCES tbl_districts (id), 
    FOREIGN KEY (state_id) REFERENCES tbl_states (id) 
) ENGINE=InnoDB; 

的關係如下 用戶有多個聯繫人即永久地址,現住址,辦公地址。 每個聯繫人都有州和市。

用戶 - >非接觸>這樣

狀態如何保存這種結構的模型一氣呵成。

請提供答覆儘快

回答

0

我相信我也有類似的問題,節省了許多外鍵多拉平模型。它似乎並不認爲它可以很容易地被保存在「一氣呵成」 ...... 看看my solution here

0

您可能對谷歌代碼看看GII-模板擴展 -

gii templates on google code

- >>它可能更好地記錄,但它試圖做你需要的。 (如果你實施得很好,可能會節省一些時間,但如果我是你,我甚至會考慮手工編寫它 )。