我们正在重新安排我们的家庭租赁数据库,并有关注。我们有不同的apis,从房屋和公寓来来往往。从apis我们主要只有Country-> Region-> City(或village)结构。此外,我们有一个额外的国家公寓,我们有 Region-> City-> City Part-> Street Structure
所以我们制作了2个mysql方案。你可以批评一下,也许暗示一个更好的方法吗?
第二个
请你批评并提供更好的方法来做db,这会带来更好的性能,更少的连接等?我们不是mysql专家:((
此处观看的图片很小,所以链接
答案 0 :(得分:0)
整个架构都错了!您对数据库规范化有何了解?您的架构至少与第3范式的要求不匹配。 举个例子:
你有国家:
-CountryName1
-CountryName2
-CountryName3
您有区域:
-RegionOfCountry1_a
...
-RegionOfCountry3_a
你有城市:
-City_1_Of_Country1_Region_a
...
-City_3_Of_Country3_Region_a
在树视图中的示例数据将是:
-CountryName1
|_ -RegionOfCountry1_a
|_ -CityOf_Country1_Region_a
|_ -City_1_Of_Country1_Region_a
|_ -City_2_Of_Country1_Region_a
|_ -City_3_Of_Country1_Region_a
|_ -CityOf_Country1_Region_b
|_ -City_1_Of_Country1_Region_b
|_ -City_2_Of_Country1_Region_b
|_ -City_3_Of_Country1_Region_b
|_ -CityOf_Country1_Region_c
|_ -City_1_Of_Country1_Region_c
|_ -City_2_Of_Country1_Region_c
|_ -City_3_Of_Country1_Region_c
|_ -RegionOfCountry1_b
|_ -CityOf_Country2_Region_a
|_ -City_1_Of_Country2_Region_a
|_ -CityOf_Country2_Region_b
|_ -City_1_Of_Country2_Region_b
|_ -CityOf_Country2_Region_c
|_ -City_1_Of_Country2_Region_c
|_ -RegionOfCountry1_c
|_ -CityOf_Country2_Region_a
|_ -City_1_Of_Country2_Region_c
...
-CountryName2
|_ -SecondCountry
|_ -MegaCityCountry3
...
-CountryName3
|_ -MegaRegionCountry3
|_ -MegaCityCountry3
您有之家表,其中包含外键(country_id,city_id,region_id)的约束,这些约束链接到这3个表。它提供了创建错误记录的可能性,例如:
*name = "MyHouse with address data from a far galaxy"
country_id = CountryName**1**
region_id = RegionOfSecondCountry (from CountrName**2**)
city_id = MegaCityCountry3 (from -CountryName**3**)*
这意味着下一步:您不了解规范化要求,或者您不预测传递依赖性
尝试做下一步
----------------
Table "**houses**"
----------------
id
houseNumber
description
*fk_city_id*
----------------
fk_city_id引用城市 .id:
----------------
table "**cities**"
----------------
id
name
*fk_region_id*
----------------
fk_region_id引用区域 .id:
----------------
table "**regions**"
----------------
id
name
*fk_country_id*
----------------
fk_country_id引用国家/地区 .id:
----------------
table "**countries**"
----------------
id
name
----------------
P.S。 >>抱歉我的英文不好