Как сохранить URL в базе данных и создать уникальный идентификатор - PullRequest
0 голосов
/ 16 ноября 2010

Я хочу создать приложение, используя php и mysql.

Предположим, я делаю вызов API и получаю список URL-адресов.Я хочу сохранить эти URL-адреса, и каждый URL-адрес должен иметь один уникальный идентификатор (т. Е. Номер), чтобы я мог передать этот идентификатор на какую-либо страницу и получить URL-адрес из своей базы данных.

Предположим, я сделал вызов APIполучил пять URL-адресов для ключевого слова "xyz", и я получил следующие URL-адреса и соответствующие названия

google.com/abc1.html title1
google.com/abc2.html title2
google.com/abc3.html title3
google.com/abc4.html title4

, поэтому я хочу сгенерировать уникальный идентификатор каждого URL-адреса, например ограничения

id1 google.com/abc1.html title1
id2 google.com/abc2.html title2
id3 google.com/abc3.html title3
id4 google.com/abc4.html title4

URL должен быть уникальным

база данных может содержать около 12Lacs URL.

не могли бы вы подсказать мне, как это реализовать?также дайте некоторые рекомендации по оптимизации

Спасибо

Ответы [ 3 ]

6 голосов
/ 16 ноября 2010

Используйте столбец auto_increment для идентификатора и уникальное ограничение для столбца url.

create table urls (
  id bigint not null auto_increment
, url varchar(250) unique
, title varchar(250)
);
2 голосов
/ 16 ноября 2010

12Lacs = 1,2 миллиона, верно?

Для этого вы можете использовать обычное целое число без знака с автоинкрементом;

create table urls (
    id int unsigned not null auto_increment,
    url varchar(255) not null unique,
    title varchar(255) not null,
    primary key(id)
);

Целое число без знака может содержать значение до 4 294 967 295.

0 голосов
/ 16 ноября 2010

В дополнение к ответу Мартина можно сделать столбец id без знака и удвоить его емкость до 18446744073709551615 строк.Если вам нужно больше памяти, вы можете посмотреть на использование UUID.

http://php.net/manual/en/function.uniqid.php

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...