【发布时间】:2018-08-14 13:31:04
【问题描述】:
我正在努力创建具有@ManyToMany 和@ManyToOne 关系的表。
我必须创建 3 个表,人、国家、性别。 个人和国家关系@ManyToMany 和个人、性别@ManyToOne。
我的代码正确吗?
CREATE TABLE IF NOT EXISTS `di_person` (
`id_person` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
`name` VARCHAR(256) ,
`last_name` VARCHAR(256) ,
`additional_info` VARCHAR(256) ,
`gender_id` VARCHAR (50) UNIQUE REFERENCES di_gender,
`country_id` VARCHAR (50) UNIQUE REFERENCES di_country
) COLLATE='utf8_bin';
-- -----------------------------------------------------
-- Table 'gender`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `di_gender` (
id_gender INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
id_person INT,
name VARCHAR(50),
CONSTRAINT tb_fk FOREIGN KEY (id_person) REFERENCES di_person(id_person)
) COLLATE='utf8_bin';
-- -----------------------------------------------------
-- Table 'country`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `di_country` (
`id_country` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
`name` VARCHAR(256),
`id_person` VARCHAR (10) UNIQUE REFERENCES di_person
) COLLATE='utf8_bin';
【问题讨论】:
-
尝试使用一张表(人),其中
gender和country只是文本字段。 -
你的意思是改成:
gender_id VARCHAR (50) and country _id VARCHAR (50)without references? -
是的。 (谁为评论创建了 15 个符号限制???)