Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在MySQL数据库中设置州和市的关系?_Mysql - Fatal编程技术网

如何在MySQL数据库中设置州和市的关系?

如何在MySQL数据库中设置州和市的关系?,mysql,Mysql,我想存储这种类型的记录 State\u Id State\u name -------------------------- 1古吉拉特邦 2马哈拉施特拉邦 城市标识城市名称州标识 ----------------------------------------- 1 Bhavnagr 1 2 Rajkot 1 1孟买2 一个州可以找到几个城市(而一个城市属于一个独特的州)。要表示1-N关系,您需要两个表:一个用于城市,一个用于州,其中城市表是州表的子表(这意味着它有一个列引用它所属州的id):

我想存储这种类型的记录

State\u Id State\u name
--------------------------
1古吉拉特邦
2马哈拉施特拉邦
城市标识城市名称州标识
-----------------------------------------
1 Bhavnagr 1
2 Rajkot 1
1孟买2

一个州可以找到几个城市(而一个城市属于一个独特的州)。要表示1-N关系,您需要两个表:一个用于城市,一个用于州,其中城市表是州表的子表(这意味着它有一个列引用它所属州的id):

示例
create table
语句:

create table states (
    state_id int primary key auto_increment,
    state_name varchar(100)
    -- add more columns here as needed
);

create table cities (
    city_id int primary key auto_increment,
    state_id int not null,
    city_name varchar(100),
    -- add more columns here as needed
    foreign key (state_id) references states(state_id)
);

看起来你已经有了解决方案。那么问题是什么呢?我不想在city\u id字段中给出主键,因为一个city\u id可以用于另一个州
create table states (
    state_id int primary key auto_increment,
    state_name varchar(100)
    -- add more columns here as needed
);

create table cities (
    city_id int primary key auto_increment,
    state_id int not null,
    city_name varchar(100),
    -- add more columns here as needed
    foreign key (state_id) references states(state_id)
);