用mySQL数据库如何创建(中华人民共和国行政区划省、市、区、其他等),求救啊

用mySQL数据库如何创建(中华人民共和国行政区划省、市、区、其他等),求救啊,第1张

我一般这样建表:

create table unit (

    uid int auto_increment,

    uname varchar(32),

    ulevel int,

    parentid int,

    PRIMARY KEY  uid

)

uid是主键,自动编号,uname是省市区县乡镇的名称,ulevel为级别(可以规定省为1、市为2、……),parentid为上级id,省的上级为0,市的上级为对应的省,……

require 'city.php'

// 连接数据库(PDO)

$pdo=new PDO('mysql:host=localhostdbname=city','root','root')

$pdo->exec('set names utf8')

$pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE,PDO::FETCH_ASSOC)

// 实例化城市类

$c=new city()

$result=$c->mycity()

$city_id = 0

foreach ($result as $k=>$value) {

if(count($value) == count($value,1)){

$sql="insert into city_province (province) value ('{$value['province_name']}')"

$smt=$pdo->prepare($sql)

$smt->execute()

}else{

$sql11="insert into city_province (province) value ('{$value['province_name']}')"

$smt11=$pdo->prepare($sql11)

$smt11->execute()

foreach ($value['city'] as $v=>$value1) {

$sql2="insert into city_name (name,province_id) values ('{$value1['city_name']}','{$k}')"

$smt2=$pdo->prepare($sql2)

$smt2->execute()

$city_id += 1

echo $city_id.'<br>'

if(!empty($value1['area'])){

foreach ($value1['area'] as $valu1e2) {

$sql3="insert into city_area (area,city_id) values ('{$valu1e2}','{$city_id}')"

$smt3=$pdo->prepare($sql3)

$smt3->execute()

}

}

}

}

}

城市类太大了,发不了。

我是把省、市、地区分别存在三个数据表中(我是新手,刚自己写的)

就是数据库表的一对多的问题,你的第二个表(商家表)的areaID字段设置成外键,指向第一张表(地区表)的主键即可。

即是说,你的第二个表(商家表)里可以有多项对应第一张表里的一项,你说的情况就可以两个小车店有两条记录,不管你东南、西北,就往第二张表里添加记录就行了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/8494838.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-17
下一篇 2023-04-17

发表评论

登录后才能评论

评论列表(0条)

保存