我必须创建一个预订软件,我已经开始设计数据库了。 房间可能在世界的任何地方,所以我想咨询地址。 阅读了很多类似的问题我设计了这个架构,你怎么看?存储所有类型的地址是否足够? 我遵循this结构。
答案 0 :(得分:1)
请勿使用4字节onInit()
作为“country_id”,请使用标准的2-char“国家/地区代码”;它更小,避免使用INT
。
没有太多需要将“城市”从地址中分离出来 - 它没有足够的空间来保持重要性,也不会对“规范化”有用。
因此,将JOIN
和Country
合并到City
。
拥有1:1的关系很少有用;将两个表合并为一个表几乎总是更好。我在考虑Address
和Building
。
你有十亿“地板”吗?当1字节Address
更合适时,不要使用4字节INT
。另请参见TINYINT UNSIGNED
(2个字节,范围为0..65535)。
DECIMAL(6,4)/(7,4)就是lat / long所需要的。小数点后8位进入微观距离。
选择合适的SMALLINT UNSIGNED
。 CHARACTER SET
和(我怀疑)country_code
在世界任何地方都可以是postal_code
。 (我可能错了 - 孟加拉国在车牌上使用了非阿拉伯数字。)如果你真的是国际性的话,其他ascii
应该是VARCHARs
。
你可以阅读很多类似的问题来提出架构。不幸的是他们是新手。