Я работаю над роботом индексации веб-страниц и использую php и mysql.одна из таблиц будет хранить список веб-страниц.я хочу, чтобы в этой таблице был столбец id
на основе целых чисел (чтобы я мог быстрее присоединить его к другим таблицам и чтобы другие таблицы могли ссылаться на него, не сохраняя полный URL-адрес в столбце), но я также хочу *Столбец 1002 * остается уникальным.
причина, по которой возникает этот вопрос, заключается в том, что если мой скрипт читает веб-страницу, содержащую 250 ссылок, я не уверен, что лучший способ добавить их в таблицу веб-страниц без созданиядубликаты.я мог бы зациклить 250 ссылок, которые я нашел, и запросить таблицу для каждой из них, чтобы убедиться, что они не существуют, а затем вставить те, которые делают - что потребовало бы как минимум 250 запросов.
однако,если бы я мог заставить mysql принудительно установить url
в качестве уникального столбца, я мог бы просто сделать один оператор insert ignore
со всеми ссылками.это предотвратит дублирование существующих записей при добавлении новых.если бы у меня был этот тип таблицы со столбцом целочисленного идентификатора, который является уникальным / основным и автоинкрементным, мог бы я также указать, что столбец URL уникален?
id (auto inc) url added
----------------------------------------------------------------------
1 http://site.com/page-a/ 2010-01-01 01:23:34
2 http://site.com/page-b/ 2010-01-01 01:23:34
3 http://site.com/page-c/ 2010-01-01 01:23:34
другой вариант, который приходил мне в головуустановка URL-адреса в качестве уникального первичного ключа, а затем ручное увеличение столбца id
с помощью операторов php / mysql:
url (unique, primary) id added
-------------------------------------------------------------
http://site.com/page-a/ 1 2010-01-01 01:23:34
http://site.com/page-b/ 2 2010-01-01 01:23:34
http://site.com/page-c/ 3 2010-01-01 01:23:34
кажется, что это дает преимущество mysql для принудительного применения уникального URL-адреса.столбец (и, следовательно, позволяет мой метод insert ignore
), а также позволяет мне присоединиться к целому числу.единственная странная вещь - это необходимость полагаться на мой скрипт для добавления и увеличения столбца id, но я могу сделать это, если нет лучшего варианта.
Какие у меня варианты?