Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.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_Database_Database Design_Street Address - Fatal编程技术网

Mysql 建筑物房间的数据库模式

Mysql 建筑物房间的数据库模式,mysql,database,database-design,street-address,Mysql,Database,Database Design,Street Address,我必须创建一个预订软件,我已经开始设计数据库。 房间可能在世界上任何地方,所以我想咨询一下地址。 阅读了很多类似的问题,我设计了这个模式,你觉得怎么样?足够存储所有类型的地址吗? 我遵循结构 国家/地区id不要使用4字节INT,使用标准的2字符国家/地区代码;它比较小,可以避免连接 实际上,并没有必要将城市从地址中分离出来——它并没有节省足够的空间来处理问题,也并没有用于规范化 因此,将国家和城市合并为地址 1:1的关系很少有用;将两个表合并成一个表几乎总是更好的。我在考虑建筑和地址 你会有十亿

我必须创建一个预订软件,我已经开始设计数据库。 房间可能在世界上任何地方,所以我想咨询一下地址。 阅读了很多类似的问题,我设计了这个模式,你觉得怎么样?足够存储所有类型的地址吗? 我遵循结构

国家/地区id不要使用4字节INT,使用标准的2字符国家/地区代码;它比较小,可以避免连接

实际上,并没有必要将城市从地址中分离出来——它并没有节省足够的空间来处理问题,也并没有用于规范化

因此,将国家和城市合并为地址

1:1的关系很少有用;将两个表合并成一个表几乎总是更好的。我在考虑建筑和地址

你会有十亿层楼吗?当1字节TINYINT UNSIGNED更合适时,不要使用4字节INT。另请参见SMALLINT无符号2字节,范围为0..65535

小数点6,4/7,4是lat/long所需的全部。小数点后8位正进入微观距离

选择适当的字符集。国家代码和我怀疑邮政代码可以是世界上任何地方的ascii码。我可能错了——孟加拉国在车牌上使用非阿拉伯数字。如果您是真正的国际玩家,其他Varchar可能应该是utf8mb4


阅读大量类似的问题来提出模式是一件好事。不幸的是,他们是新手。

为什么楼层数是建筑的一部分?对于LAT/Lon,我宁愿使用十进制,以避免浮点固有不精确的问题。城市VARCHAR45——我会考虑将城市作为地址的属性而不是单独的表。让用户自己填写这些细节,而不是试图自己生成每个国家/地区中每个可能城市的列表…我使用VARCHAR255更新城市,并创建城市和国家作为查找表。FloorNumber包含每个建筑的楼层数。关于LAT/LONG,我读过关于FLOAT10,6的书,就像谷歌地图一样,但我也读过关于几何的书。在我根据更新的时刻,在不知道将执行什么选择的情况下,无法判断模式。请把它们画出来。