Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Ветеран


Сообщения: 27449
Благодарности: 8088

Профиль | Отправить PM | Цитировать



Цитата evpu:
но принципиальная проблема не устраняется - при распухании всей таблицы, распухает и эта часть. »
Не скажите. Есть некоторая разница, пробегаться движку по N размеру таблицы или по NxM размеру, даром что там и там выбираете одно и то же количество полей. Вы можете, кстати, проверить, ведь у Вас есть готовая таблица.

Цитата evpu:
Т.е насколько я понял, сочетание полей «место-время-человек» может быть уникальным 3-мя полями отдельно (а точнее 4 - место состоит из 2-х частей)?? »
Э… Откуда ж мне знать Вашу предметную область? Так именно Вы выше написали, и именно так я и понял.

Цитата evpu:
Тогда, можно проще - я сырую строку прилетающую из аппаратуры включающую в себя эти 3 компонента для простоты разбиваю на 3 поля, а могу ведь этого не делать - загонять в базу одним общим полем "raw_string" - которое и должно быть уникальным... »
Не уверен, что сие будет правильным. Впрочем, Вам на месте виднее будет.

Цитата evpu:
И что - при 2-х кратном INSERT одного и того же, дубликат может быть отвергнут самой БД??? Круто... Попробую. »
Вот Вам для примера база Microsoft Access: Sample.7z. Для простоты взяты «место» и «человек» как простой текст (если могут повторяться, то они обязаны содержаться в отдельных таблицах, куда из записи основной таблицы должны вести ссылки). Первичным ключом таблицы «Таблица1» является тройка полей «место-время-человек».

При исполнении кода процедуры из «Модуль1» производится попытка вставки четырёх записей поочерёдно отдельными запросами «INSERT INTO … VALUES», причём третий и четвёртый запросы — дублируют по VALUES первый и второй.

Так вот, будет вставлено только две записи по первому и второму запросам. А по третьему и четвёртому — вставка записи будет отвергнута, поскольку недопустимо дублирование первичного ключа.

Разумеется, это Jet и Access. Как там обстоят дела в MySQL, я не знаю, не пробовал. Но общие принципы построения реляционных баз данных должны быть одинаковы для всех.

Цитата evpu:
а можно в одном запросе послать не 1 INSERT а сразу кучу (15-20 и более)? »
Можно, «INSERT INTO … SELECT … FROM …». Но, как я понимаю, Вам это не подойдёт.

Отправлено: 21:28, 21-05-2015 | #9