powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Помогите спроектировать таблицы
5 сообщений из 5, страница 1 из 1
Помогите спроектировать таблицы
    #33125303
white@
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Приветствую.

Есть такая ситуация. Есть таблицы, TABLE_1, TABLE_2 и допустим TABLE_3. В каждой набор своих полей - типа TABLE_1.USERNAME, TABLE_1.RECORD_1 ... RECORD_N. И т.д.

Ситуация - есть движок через который добавляются, изменяются, удаляются значения полей в этим таблицах. Раз в сутки (неделю, месяц) нужно отсылать изменения по каждой из таблиц по каждому USERNAME.

Как собирать эти изменения?

Вариант. (Пока что единственно что приходит в голову, но мне кажется достаточно дурацким). Храним копии таблиц, с идентичными полями в виде BOOLEAN, в которых при изменении ставится флаг и очищается после того как отчет по изменениям был отослан.

Буду благодарен за ваши советы.

P.S. База - MySQL.
...
Рейтинг: 0 / 0
Помогите спроектировать таблицы
    #33125338
Paul Sacks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нет, флаги не нужны. Сегодня, на форуме MS SQL Server, проходил этот вопрос. Была ссылка со статьей "Работа с множествами в Transact-SQL".
Там все написано в запросах. Удачи.
...
Рейтинг: 0 / 0
Помогите спроектировать таблицы
    #33125372
Здравствуйте!

Могу предложить пару решений Вашей задачи.
A.
1. Создать одну универсальную таблицу TABLE_LOG для хранения изменений со следующими полями:
USER_NAME
TABLE_NAME
FIELD_NAME
FIELD_CONTENT
2. Заполнение таблицы TABLE_LOG возложить на триггера соответствующих исходных таблиц
3. Очищать таблицу TABLE_LOG после передачи изменений.

B.
1. Также можно создать таблицы полностью идентичные исходным таблицам
TABLE_LOG_1, ...
2. Заполнение таблиц TABLE_LOG_1, ... возложить на триггера соответствующих исходных таблиц
3. Очищать таблицы TABLE_LOG_1, ... после передачи изменений.

Но все зависит от характера Вашей задачи.
Как часто происходят изменений?
Как много полей обновляется?
Как часто необходимо передавать изменения?
Оптимальное решение зависит от Ваших конкретных условий.
Я к сожалению не знаком с MySQL, я работаю с Oracle.
Первый вариант подразумевает использование динамического SQL,
не знаю есть ли это расширение стандартного SQL в MySQL.
Удачи.
...
Рейтинг: 0 / 0
Помогите спроектировать таблицы
    #33125404
white@
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Paul SacksНет, флаги не нужны. Сегодня, на форуме MS SQL Server, проходил этот вопрос. Была ссылка со статьей "Работа с множествами в Transact-SQL".
Там все написано в запросах. Удачи.
http://www.aspnetmania.com/Articles/PrintArticle/41.html
К сожалению это не то, что мне нужно. Хранить копию таблиц - накладно, т.к. в них очень много данных. Поэтому из вариантов - либо 1: хранить копии таблиц, аналогичных по структуре, но с BOOLEAN вместо полей, который и будут "флагировать" что было изменение, либо 2: как описал Konstantin Lofichenko - дополнительную базу TABLE_LOG в которой фиксировать изменения по полям. К сожалению опять же MySQL не поддерживает триггеры ранее 5 версии, а на нее мы не готов переводить рабочие сервера.

Опять же, вариант 1 мне кажется недостаточно оптимальным.
...
Рейтинг: 0 / 0
Помогите спроектировать таблицы
    #33125443
Yuraz.com
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поле Bit (boolean), его менять у отправленных записей. Плюс не использовать счетчики, чтоб не было мороки потом. Ещё важно - служебное поле, когда запись считана, очень полезное поле иногда бывает.
Posted via ActualForum NNTP Server 1.2
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Помогите спроектировать таблицы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]