У меня есть база данных, которая должна работать с 2 странами, IT и RO. У меня есть таблица под названием «Пользователь», которая содержит также место рождения.База данных с несколькими языковыми базами данных
User
| id | name | surname | birthplace |
| 1 | Test | Test | New York |
У меня также есть 2 стола для места рождения, один для IT-единиц и один для RO. Я не могу хранить все города в одной таблице, потому что у ИТ и RO есть другая герархия (регион, провинция, район ...). Так что моя первая мысль была сделать место рождения поле для каждой страны, как это:
User
| id | name | surname | birthplaceIT | birthplaceRO |
Проблема заключается в том, что каждый раз, когда добавляется народ, я должен был бы изменить базу данных и приложения. С другой стороны, я не могу создать таблицу «Место рождения», потому что адреса ИТ и RO несовместимы.
Таким образом, я не могу это сделать:
Birthplace
| idUser | country | city |
Потому что я не могу ссылаться «город» и к таблице ИТ городов и тех, RO.
Предложения?
EDIT. В моем приложении PHP я использую Symfony с Doctrine, ORM, поэтому мне нужно ограничение внешнего ключа между User и CityID!
Итак, в новой таблице «Место рождения» мне нужно было бы создать поле для каждой кухни? Я имею в виду, если мне нужно делать поля «city_IT», «city_RO» и т. Д., Это не так отличается от моей первой мысли! Дело в том, что я не могу ссылаться на ОДИН городской стол, у меня есть таблица города для каждой страны. Но, может быть, я не понял вашего ответа! –
Как я уже сказал, проблема в том, что у меня есть таблица CityIT и таблица CityRO, и я не могу их унифицировать, потому что у них разные поля (из-за их иерархии, например, в итальянском городе есть провинция, а затем a Region, вместо этого город RO имеет либо муниципалитет/oras, он не имеет региона, он исключает Бухарест ecc .. –
Предположим, у вас есть город A в Италии и городе A в Румынии. Оба имеют то же имя. Тогда город в Италии будет иметь уникальный код IT123456 и город а в Румынии будет иметь уникальный код RO987654 Тогда вы будете иметь две таблицы:. 'BirthplaceIT BirthplaceID | BirthplaceName | Страна | Регион | Адрес | Почтовый индекс и т.д. ' ' BirthplaceRO Место рожденияID | Birthpla ceName | Страна | Земля | Графство | Адрес | Почтовый код и т. Д. '' В 'User' у вас есть User1 с местом для рождения IT123456 - так это будет в Италии, и вы можете легко присоединиться к двум или более таблицам на основе идентификатора места рождения, чтобы вы могли получить UserID + birthplaceName – iaforek