|
Как добавить уникальные значения
|
|||
---|---|---|---|
#18+
Всем привет! Тема такая, есть БД, в которую загружается массив данных (загрузку инициирует пользователь). Существует вероятность того, что разные пользователи попытаются внести одни и те же данные. Вопрос: как обеспечить уникальность загрузки данных? Есть вариант удаления через DELETE, после того как данные попали в БД, но этот вариант не подходит, тк сильно тормозит компьютер.... ... |
|||
:
Нравится:
Не нравится:
|
|||
17.05.2016, 12:56 |
|
Как добавить уникальные значения
|
|||
---|---|---|---|
#18+
Как и откуда выполняется загрузка? Что является критерием уникальности данных? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.05.2016, 12:59 |
|
Как добавить уникальные значения
|
|||
---|---|---|---|
#18+
Вариант 1: ввести в структуру поле, идентифицирующее оператора, загружающего данные. Однако не спасёт от повторной загрузки. Вариант 2: создать уникальный индекс по идентифицирующей совокупности полей. Однако при наличии хотя бы одного дубля весь массив данных не будет загружен. Вариант 3: выполнять загрузку во временные таблицы, откуда копировать в рабочие таблицы только отсутствующие там данные. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.05.2016, 13:26 |
|
Как добавить уникальные значения
|
|||
---|---|---|---|
#18+
Ага... Про интерактив с источником данных только подумать осталось... когда его данные проигнорятся. Я это к тому - что за источник данных? Если тупо планктон на клаве наколачивает - я бы в евонный интерфейс это заложил. Не доводя до загрузки. Если же с датчиков сыплется рилтайм - надо думать. Ссыпал бы, млин, все подряд в кучу. ИД источника-то никто ведь не отменял. И на отдельных мощностях проверял. Но без внятной обратной связи - пустое это все... . ... |
|||
:
Нравится:
Не нравится:
|
|||
17.05.2016, 13:40 |
|
Как добавить уникальные значения
|
|||
---|---|---|---|
#18+
Да! При реализации по любому из вариантов критическим будет аспект значимости отбрасываемых данных. Какие решения принимаются в этом случае и как глубоко они пронизают систему? Влияют ли отброшенные данные сами или хоть просто факт отброса их на следующие принимаемые решения?... Вобчем - думай крокодил, думай... . ... |
|||
:
Нравится:
Не нравится:
|
|||
17.05.2016, 13:49 |
|
Как добавить уникальные значения
|
|||
---|---|---|---|
#18+
капча-витринами-я-не-роботкритическим будет аспект значимости отбрасываемых данных. Именно по этой причине я считаю наиболее правильным мой третий вариант в комбинации с первым. Т.е. ввод оператора должен сохраняться в обязательном порядке, и непременно с персонализацией. Это позволит как принимать более обоснованное решение по сохранению дубликатов (особенно частичных), так и по вставлению клизьмы особо нерадивым. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.05.2016, 14:05 |
|
Как добавить уникальные значения
|
|||
---|---|---|---|
#18+
Akinaввод оператора должен сохраняться в обязательном порядке, и непременно с персонализацией. Akina, дай я тебя расцелую! Я в трех задачах пытался склонить три разных руководства к этому. И чтобы отдел кадров не просто перекладывал табеля из стопки в стопку, а еще и какую-то аналитику проводил - почему какая-то вчерашняя колхозница Дуня пять раз в течение дня поменяла цену оставив ее в итоге неизменной... Но что поделать, если руководство тоже лишь вчера из колхоза... разве что - при деньгах... . ... |
|||
:
Нравится:
Не нравится:
|
|||
17.05.2016, 14:14 |
|
Как добавить уникальные значения
|
|||
---|---|---|---|
#18+
Анатолий ( Киев )Как и откуда выполняется загрузка? Что является критерием уникальности данных? Данные берутся из файла EXCEL. По факту может быть массив 1000х10 или 5000х10 (строка Х колонка) Критерий уникальности - это строки, те ВСЕ строки уникальны... ТЕ они должны быть уникальными ... |
|||
:
Нравится:
Не нравится:
|
|||
17.05.2016, 17:08 |
|
Как добавить уникальные значения
|
|||
---|---|---|---|
#18+
Ну в таком виде вообще вопрос не стоИт - только через журнальные таблицы. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.05.2016, 17:10 |
|
Как добавить уникальные значения
|
|||
---|---|---|---|
#18+
AkinaВариант 1: ввести в структуру поле, идентифицирующее оператора, загружающего данные. Однако не спасёт от повторной загрузки. Вариант 2: создать уникальный индекс по идентифицирующей совокупности полей. Однако при наличии хотя бы одного дубля весь массив данных не будет загружен. Вариант 3: выполнять загрузку во временные таблицы, откуда копировать в рабочие таблицы только отсутствующие там данные. как копировать отсутствующие? Есть готовый SQL запрос? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.05.2016, 17:15 |
|
Как добавить уникальные значения
|
|||
---|---|---|---|
#18+
kos20Есть готовый SQL запрос?Нет, ессно. Тебе придётся его написАть. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.05.2016, 18:12 |
|
Как добавить уникальные значения
|
|||
---|---|---|---|
#18+
Можно использовать "молдавский" вариант: собираем запросом на объединение (назовём ЗапросА)все данные из общей таблицы, куда попадают данные от всех пользователей (или по всем таблицам пользователей, не важно). После чего обращаемся к этому ЗапросА запросом с группировкой, в свойствах которого прописываем уникальные значения. Получаем искомое ... |
|||
:
Нравится:
Не нравится:
|
|||
17.05.2016, 21:00 |
|
Как добавить уникальные значения
|
|||
---|---|---|---|
#18+
Tarasios, почему "молдавский"? Очень интерсна этимология. Нормально только объясни, плз. Без оглядок на скрепы, толерантность и "они нам нужны". Скажи - как есть :) . ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2016, 23:31 |
|
Как добавить уникальные значения
|
|||
---|---|---|---|
#18+
Видимо загрузку надо выполнять запросом на добавление с использованием NOT EXISTS, тапа: Код: plsql 1.
Еще вариант создать уникальный индекс из 10 полей, но, ИМХО, это извращение. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2016, 11:31 |
|
Как добавить уникальные значения
|
|||
---|---|---|---|
#18+
капча-водоемы-я-не-робот, попробую ) kos20 ставит задачу: ему необходим выборка уникальных данных из поступающих данных от пользователей. Допустим, есть Пользователь 1 и Пользователь 2. Их кол-во может быть любым. Соответственно, от каждого из них поступают данные в таблицах одной структуры. Пусть это будут таблицы ТПользователь1 -------------------------------------- Фигура Цвет Размер -------------------------------------- Куб Красный Большой Треугольник Красный Большой Тор Зелёный Маленький Куб Красный Большой и ТПользователь1 -------------------------------------- Фигура Цвет Размер -------------------------------------- Куб Красный Большой Треугольник Красный Большой Треугольник Синий Большой Делаем запрос на объединение и называем его Запрос1: select Фигура, [Цвет], [Размер] from ТПользователь1 UNION ALL select Фигура, [Цвет], [Размер] from ТПользователь2; Он нам выдаёт данные в куче, в том числе и повторяющиеся: -------------------------------------- Фигура Цвет Размер -------------------------------------- Куб Красный Большой Треугольник Красный Большой Тор Зелёный Маленький Куб Красный Большой Куб Красный Большой Треугольник Красный Большой Треугольник Синий Большой Теперь делаем второй запрос (Запрос2), на выборку, который просто берёт данные из Запрос1 и группирует их: SELECT Запрос1.Фигура, Запрос1.Цвет, Запрос1.Размер FROM Запрос1 GROUP BY Запрос1.Фигура, Запрос1.Цвет, Запрос1.Размер; Получаем на выходе набор уникальных данных: ----------------------------------------- Фигура Цвет Размер ----------------------------------------- Куб Красный Большой Тор Зелёный Маленький Треугольник Красный Большой Треугольник Синий Большой Как бы и всё. Можно Запрос2 сразу сделать запрос на добавление, можно просто обращаться к нему. Кол-во пользователей, полей - роли не играют. Если записи разнятся хоть на одну цифру или букву - они будут считаться уникальными. Пример прикрепляю. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2016, 15:22 |
|
|
start [/forum/topic.php?fid=45&fpage=104&tid=1613556]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
27ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
55ms |
get tp. blocked users: |
2ms |
others: | 13ms |
total: | 136ms |
0 / 0 |