我有一个数据库,必须与2个国家/地区,IT和RO合作。 我有一个名为User的表,它也包含了诞生地。
User
| id | name | surname | birthplace |
| 1 | Test | Test | New York |
我还有两张桌子用于出生地,一张用于IT用户,一张用于RO。我无法将所有城市存储在一个表中,因为IT和RO具有不同的层次结构(地区,省,区......)。所以我的第一个想法是为每个国家做一个出生地,如下:
User
| id | name | surname | birthplaceIT | birthplaceRO |
问题在于,每次添加国家/地区时,我都必须修改数据库和应用程序。另一方面,我不能成为一个出生地"表格,因为IT和RO地址不兼容。
所以,我不能这样做:
Birthplace
| idUser | country | city |
因为我不能推荐" city" IT市场表和RO表。
建议?
EDIT。在我的PHP应用程序中,我使用Symfony和Doctrine,一个ORM,所以我需要用户和CityID之间的外键约束!
答案 0 :(得分:0)
不要将出生地存储在User
表格中,而是将其更改为名称birthplace ID
- 它可以只是整数,但您可以做更复杂的事情并使用唯一代码(您自己的代码)或者可能有"适当的地理代码)。
然后,您可以拥有每个国家/地区特定出生地的表格,并根据出生地ID连接表格。这样,您可以将每个国家/地区特定的地理层次结构保留在自己的表如果您需要添加其他国家/地区,则只需为该国家/地区创建另一个表格,然后将其加入User
。