Такой термин как ID встречается очень часто. Чаще всего о нём говорят в контексте социальных сетей, но на самом деле он присущ 99% таблиц баз данных, а значит практически всем сайтам. Даже сейчас, когда вы читаете эту статью-у неё есть уникальный ID.
Вообще ID - это порядковый номер, и он уникален в рамках конкретной сущности.
Разберём на примере простого блога. В блоге есть статьи, которые помечены тэгами и у каждой статьи есть автор.
В такой системе будет три(на самом деле четыре) сущности, а именно: запись в блоге, автор и тэг.
Каждая из них хранится в отдельной таблице. В каждой таблице есть поле ID, типа integer с пометкой auto_increment. Это значит, что это поле заполняется автоматически таким образом, что при добавлении новой строки его значение увеличивается на 1.
То есть:
articles
id | title | body | author |
1 | Котики | ... | 1 |
2 | Собачки | ... | 1 |
3 | Птички | ... | 1 |
Как видите, у каждой статьи свой номер.
Аналогично строятся таблицы для пользователей и тэгов:
users
id | login |
1 | admin |
2 | editor |
3 | master |
tags
id | name |
1 | домашние животные |
2 | пушистые |
3 | дикие животные |
У записи в блоге и тэга может быть одинаковый ID. Так как это разные сущности-такое пересечение допустимо.
Некоторые особенности
Когда в таблицу добавляется новая запись - движок базы данных берет значение ID не из последней строки, а из отдельного свойства таблицы.
То есть, если вы добавите 5 тэгов с ID 1, 2, 3, 4 и 5, а затем удалите пятый и добавите новую запись - у неё ID будет равен 6. Это сделано для сохранения целостности данных. Ведь на эту таблицу могут ссылаться другие таблицы,различные сервисы или API. ID может фигурировать в url страницы, которая уже проиндексирована и т.д.
Работа с API
Предположим у вас есть сайт, тот же блог, и вы решили сделать для него мобильное приложение. Для отображения в нём контента сайта его нужно получать по API. В нашем случае достаточно будет двух точек доступа, а именно на список материалов и на один материал. Выглядеть это будет так:
/api/articles /api/articles/$ID
То есть первым запросом мы получаем список материалов, с заголовками и ID номерами статей:
Запрос:
GET /api/articles
Ответ:
[ { "id":1, "title":"Котики" }, { "id":2, "title":"Собачки" }, { "id":3, "title":"Птички" } ]
Взяв из него нужный номер передаём его во второй запрос.
Запрос:
GET /api/articles/2
Ответ:
{ "id":2, "title":"Собачки", "body":"..." }
Связи данных
Теперь поговорим о четвёртой сущности. Это связь материалов с тэгами. Один материал может быть связан сразу с несколькими тэгами. Для этого создадим таблицу связей с колонками id, article_id, tag_id.
И теперь, если статье надо проставить три тэга - добавляем в таблицу три строки. article_id у всех трёх строк будет одинаковым, а tag_id разным.
Пример трёх таблиц.
articles_tagsid | article_id | tag_id |
1 | 1 | 1 |
2 | 1 | 2 |
3 | 1 | 3 |
Вот такая область применения у такого понятия как ID. Если вам есть что добавить или возразить-добро пожаловать в комментарии.