2011-12-23 5 views
0

У меня есть две таблицы (позволяет называть их таблицы A и B), оба из них содержат данные о магазинах. Таблица A содержит данные о имени магазина, адресе и номеру телефона, а в таблице b содержатся данные о времени открытия и закрытия магазинов, координатах местоположения, логотипах и т. Д. Я использую стороннее приложение, которое заполняет данные в таблицы A и B. Теперь я хочу создать новую таблицу (таблица C) и иметь все необходимые столбцы в этой таблице. Есть ли что-то, что я могу сделать, чтобы каждый раз, когда запись была сделана в таблицу A и B, данные также добавляются в таблицу C? Если да, как мне это сделать? (Я не могу изменить стороннее приложение)Автозаполнение таблицы sql на основе записей в двух разных таблицах

ответ

1

Это отличная работа для trigger в базе данных.

1

Триггеры в MySQL не велики, но если вам нужен только доступ к данным только для чтения, вы можете создать представление, чтобы получить это. Однако будьте осторожны, представления в MySQL не велики, если вы присоединитесь к ним.

что-то вроде:

create view shop_all_v as 
    select 
    a.shop_name, a.address, a.phone_number, b.opening_time, b.closing_time 
    from table_a a, table_b b 
    where a.shop_id = b.shop_id; 

Другой способ заключается в создании запланированного задания, которое обновляет таблицу в коде приложения. Не самое лучшее, но с MySQL вы немного застряли. Вы можете создавать столбцы timestamp, которые помогут отслеживать, когда произошла синхронизация. Это не так уж безумие, поскольку это стандартная практика для агрегированной обработки данных, просто не рекомендуется, когда вам нужна надежность в реальном времени.

Смежные вопросы