Посоветуйте как поступить Есть две таблицы данных table1 id name country 1 Вася 1 2 Фред 2 3 Гена 1 table2 id country 1 Russia 2 USA 3 Spain Необходимо каким то образом производить запись в базу данных смены гражданства но при этом первое гражданство должно оставаться. В базе должно храниться до трех гражданств. Самое простое решение, это добавить в первую таблицу два столбца и получим id name country1 country2 country3 но гражданство меняется у малого количества людей, и в таком случае придется хранить две практически пустые колонки. Второй вариант это создать дополнительную таблицу table3 id peoples country куда записывать изменения гражданств у людей. Но тогда возникают всевозможные проблемы с поиском, так как должна быть возможность поиска по CONCAT(table1.name,table2.name) Подскажите каким образом лучше организовать базу, может у кого будет лучшее предложение...
в твоем случае скорее всего проще будет создать два столбца проверь разницу в размере базы - мускул может и сократить пустые. В более сложных - таблица с историей изменения параметров.
Я бы предложил такую структуру: persons id name countries id country citizenships personID countryID ts Таблица citizenships как раз и хранит информацию, у кого какое гражданство. Поле ts типа timestamp позволяет узнать дату/время получения гражданства -- а значит, и узнать последнее (т.е. текущее). а