powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Помогите спроектировать структуру для работы с "дублями"
4 сообщений из 4, страница 1 из 1
Помогите спроектировать структуру для работы с "дублями"
    #40118111
Yup
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Yup
Гость
Есть таблица с набором полей и с уникальным ключем ID для каждой записи. Есть входящий поток данных от парсинга, из которого записи с новым ID добавляются а записи с уже существующими ID заменяются (записи со старыми значениями переносятся в архивную таблицу для возможности просмотра изменений во времени).

Теперь о проблеме: в основной таблице существуют записи с разными ID но представляющие по сути дубли друг друга, т.е. отображающие одну и туже сущность. У них в той или иной мере могут различаться значения некоторых полей но они подразумевают один и тот же объект-сущность. Часть таких дублей (где полностью совпадают значения в основных полях и различия могут быть в малозначимых второстепенных) я могу распознать автоматически и произвести с ними какие то действия (пометить общим индексом например) еще на этапе добавления в базу. Другая часть, которая имеет различия в более значимых полях, выявляется уже на этапе пользовательской работы с данными, глазами, и действия с ними (таже пометка общим индексом) будут производиться уже на этом этапе ручной работы.

В пользовательском интерфейсе мне нужно выводить записи с схлопнутыми (все записи с одним дублем в одну) дублями, иметь возможность делать пометки и комментарии к записям (комментарий к одной записи дубля должен распространятся и на остальные, т.е. записи будут делаться в отдельной таблице, связанной с основной один-ко-многим) и иметь удобную в пользовании возможность схлопывать найденные дубли (как добавлять новую запись к уже имеющейся группе аналогичных дублей так и создавать новую группу дублей из 2-х или нескольких записей).

Раздумываю как лучше организовать хранение и работу в рамках описанной задачи. Решение в лоб - дублирую столбец уникального ID (основной столбец так и остается с уникальными ID, по ним разбираемся со входящим потоком от парсинга) и в нем (назовем его ID_дубль) у дублей одной группы уникальные ID заменяю на один общий. По этому ID_дубль связываю таблицу с результатами парсинга с таблицей, в которой будут храниться пользовательские данные (комментарии, отметки, все то что вносится в ручную). В пользовательском интерфейсе таблицу со схлопнутыми дублями получаю запросом с группировкой.

Нет ли более изящного решения подобной задачи?
...
Рейтинг: 0 / 0
Помогите спроектировать структуру для работы с "дублями"
    #40118168
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
То, что ты описываешь, фактически самый обычный parent-child. Но, поскольку плодить деревья в рабочей таблице под такую задачу неразумно, лучше рассматривать двутабличную схему группирования, т.е. создать отдельную таблицу фэйковых групп и поле принадлежности группе в рабочей таблице. По сравнению с простым полем, как ты хочешь, такая схема уберёт проблему с генерацией значения для поля принадлежности группе при создании новой группы. А пустые группы почистить - плёвое дело.
...
Рейтинг: 0 / 0
Помогите спроектировать структуру для работы с "дублями"
    #40118209
Yup
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Yup
Гость
Если я правильно понял, поле принадлежности группе в рабочей таблице будет иметь значение id группы если запись входит в группу и "пусто" если не входит (не имеет дублей)? Но тогда непонятно как дальше его использовать, т.е. прилинковывать таблицу с пользовательскими данными и отбирать записи со схлопнутыми дублями для вывода в интерфейсе. В общем, наверно я просто не понял мысль.
...
Рейтинг: 0 / 0
Помогите спроектировать структуру для работы с "дублями"
    #40118254
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yup
Если я правильно понял, поле принадлежности группе в рабочей таблице будет иметь значение id группы если запись входит в группу и "пусто" если не входит (не имеет дублей)?

Да.

Yup
непонятно как дальше его использовать, т.е. прилинковывать таблицу с пользовательскими данными и отбирать записи со схлопнутыми дублями для вывода в интерфейсе.

Нет. При выборке таблица групп вообще не нужна. Просто поле с номером группы будет самым первым в условии сортировки, либо будет входить в выражение группировки.
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Помогите спроектировать структуру для работы с "дублями"
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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