Как автоматически копировать данные из столбцов SQL?
Есть две таблицы. В них перечислены users, т.е. пользователи сайта.
У каждого user есть свой баланс.
Задача: нужно, чтобы данные из столбца balance таблицы 1 автоматически записывались в столбец balance таблицы 2 в соответствии с id (номер id в таблицах совпадает).
И наоборот, при изменении значения баланса 2, в баланса 1 тоже должны быть внесены изменения.
FanatPHP, чтобы в каждой таблице у одного и того же пользователя был одинаковый баланс и это значение автоматически обновлялось в зависимости от вносимых изменений.
Scrooge_McDuck, идея так себе: что, если балансы юзера в таблицах не совпадут? Как исправить такую ситуацию?
Для решения этой проблемы давно уже придумана техника трёх таблиц: балансы заносятся во все три, а при возникновении единичной ошибки верным значением признаётся то, которок найдётся в двух таблицах.
Дерзай, реализуй мудрый паттерн )
longclaps, нет, здесь две системы мерчанта с двумя разными балансами. Никакого мира и дружбы между ними не будет, только сухое замещение балансами друг друга, именно в той форме, которую я описал только что.
В данной ситуации не следует дублировать данные. Это только приведет к ошибкам (инконсистентность данных). Храните баланс в одной из таблиц или создайте отдельную с двумя полями ид и баланс и присоединяйте ее к к основной при выборке данных
А допустим, если бы это был не баланс, а любой другой параметр?
Например, я хочу автоматически перенести данные столбца ALPHA в столбец BETA (именно делаю акцент, что у столбцов разное наименование) и чтобы это обновлялось в реальном времени.
Короче говоря, переводя с хабровского на человеческий язык, никто не знает как это нужно правильно сделать, по этому я прослушал дефолтную лекцию по безопасности баз данных.
Лентюй, В чём Ваши приципиальные возражения против отдельной таблицы с балансом? Я не настаиваю что это лучшее решение, но в тоже время не исключаю как возможный вариант
Slava Rozhnev, у меня две системы мерчанта с двумя разными балансами, соответственно две разные таблицы (я про это писал в другой ветке комментариев). И таблицы эти различаются по многим параметрам.
Соответственно, чтобы данные отправлялись в одну таблицу придется переписывать мерчанты.