关于用户地址表的设计问题
发布于 13 年前 作者 dolphinboy 10761 次预览 最后一次回复是 13 年前 来自
很常见的一个需求就是用户的地址啦、收货地址啦什么的,反正就是地址存储,不知道该怎么设计是好…… 初步的打算是分为:国家、省、市、县、乡、其他详细地址 第一种方案:
id parentid adrid adrname
xxxx 81 440000 广东省
yyyy 440000 440300 深圳市
zzzz 440300 440304 福田区
xxxx 440304 4403xx xx街,xx号(详细地址)
xxxx 440304 4403yy yy街,yy号(详细地址)
这样的设计有一个问题就是,如果一个用户的地址是 广东省,深圳市,福田区,那么用户关联地址为zzzz,但是从福田区查询到广东省又要查询两次,加载一个用户地址就要查询三次,会不会浪费?
第二种方案是:
id province city area streeno
xxxx 广东省
yyyy 广东省 深圳市 福田区
zzzz 广东省 深圳市 福田区 xx街,xx号(详细地址)
这种方案的问题是数据冗余比较大
需求有: 1、要能够很快的进行双向查询,例如得到广东省下面所有的市,然后也能很快的根据市的到省,甚至根据区来得到哪几个省有这个区 2、文档性数据库存储格式 3、尽可能支持国际化(貌似有点儿困难) 4、用户地址嘛,当然要和用户对象关联
求指点、求意见……
3 回复
前两位国家代码,第三四为省级代码,第五六位省代码,第七八位区域代码,最后三位为街道地址,怎样?
ok,如果能满足你的需求和未来的扩展就是可以的