Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Таблица без PRIMARY KEY и AUTO_INCREMENT
 
 автор: alexandris   (28.01.2006 в 09:12)   письмо автору
 
 

Существует таблица, в ней есть поля id, cat + поля с данными.
id - хранит номер картинки
cat - номер категории.
Бывает, что картинка с номером id может относиться к разным категориям.
Т.е в таблице может быть несколько строк с одинаковым id, но с разным cat.
При добавлении в таблицу командой INSERT появляются дублирующие строки (с одинаковым id и cat).
Надо или недопустить запись с дублирующими данными, или в конце работы удалить дублирующие записи, или найти способ хранения id и cat.

Использование PRIMARY KEY и AUTO_INCREMENT отпадает, т.к. перед добавлением надо обратиться к БД: "Существует ли подобная сторока?". Лишние обращения к БД нежелательны, через БД и мой скрипт проходит и так большой траффик: около 3,5-4 Мб за 2 мин.

Пробовал объединить id и cat в отдельный столбец, и назначить ему PRIMARY KEY, но это решение мне не нравится (обращение к этому столбцу никогда не будет).

   
 
 автор: cheops   (28.01.2006 в 11:52)   письмо автору
 
   для: alexandris   (28.01.2006 в 09:12)
 

Создайте уникальный ключ сразу по двум полям id и cat - MySQL допускает объединение до 16 полей в одном ключе. Запрос в вашем случае может выглядеть следующим образом
CREATE UNIQUE INDEX index_name ON tbl_name (id, cat)

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования