Есть такая универсальная штука — идентификатор. Или ID, сокращённо от Identifier. Идентификатор используется практически везде, начиная от сканеров штрих-кодов в ближайшей аптеке, до банков с их карточками и финансовыми транзакциями, и заканчивая сложными системами хранения данных.
ID нужен для того, чтобы идентифицировать некий объект однозначным образом (спасибо капитан очевидность), отличив его от других объектов. Иными словами, ID предназначен для уникализации объектов друг относительно друга. И конечно же, ID во всевозможных его вариантах можно встретить в реальной жизни, например в документах или выписках.
Нумерация в IT, и в реальной жизни
Как в информационном пространстве, так и в жизни, пронумеровано буквально всё. У каждой партии товара в супермаркете есть свой ID накладной. У каждой операции прихода или расхода, у каждого скана документа, да в общем у всего чего угодно в современном мире, через рефлексию программирования, есть свой ID. Номер паспорта, по сути своей, это тоже числовой ID, который отличает одного гражданина от другого. Буквы и цифры на денежных банкнотах - это тоже ID для каждой банкноты, который позволяет понять, когда, кем, и на каком оборудовании купюра была напечатана.
Идентификаторы могут быть не только числовыми, но и строковыми. В строковом виде их иногда называют GUID / Hash (Globally Unique Identifier / Hash Code). Но, самое простое — это обычный числовой идентификатор, последовательно увеличивающийся от 1 и до бесконечности. Каждый новый объект некоторого типа получает ID отличный на +1 от предыдущего. Как правило, столбец «Id» (или параметр Id) всегда идёт первым, как в таблицах, так и в описательной части классов с точки зрения ООП. По крайне мере, мне хочется в это верить через призму собственного опыта.
ID как механизм целостности
ID помимо прочего нужен для сохранения целостности данных, и для связывания объектов друг с другом. Например, у нас есть база данных автовладельцев. В самом простом виде, там существует условная таблица «CarOwners» у которой есть столбец «Id». В этой же базе данных существует другая таблица - «Cars», у которой есть столбец «ParentID». В главной таблице перечислены владельцы автомобилей с номерами 1,2,3,4 и так далее. В дочерней таблице, которая содержит автомобили, в столбце «ParentID» указываются идентификаторы владельцев из основной таблицы. И если у некоторого пользователя в основной таблице с ID=804 будет, скажем, две машины — то у каждой из этих машин значение «ParentID» будет тоже равно 804. То есть, дочерняя таблица соотносится с родительской таблицей через связку CarOwners::ID ← Cars::ParentID.
Использовать ID или нет?
Использование ID не является незыблемым правилом, и в общем-то нет каких-то обязательств применять его в создаваемых программах. Можно вообще писать классы без идентификаторов, и связывать их через вложенность. Можно вообще не использовать ООП, и спокойно работать в IT на других парадигмах. Использование идентификаторов это вопрос привычки, и контекста поставленной задачи. Но, на мой взгляд (и если парадигма позволяет), явное применение числового ID / строкового GUID в объектах и таблицах это хороший стиль, который помогает упрощать создаваемые продукты изнутри, давать им большую понятность и надёжность. Многие годы я использую эту технику «в лоб». Проектируя любой объект или таблицу в базе данных, первым столбцом/параметром ставлю обычный числовой «ID» на авто инкременте (+1 для каждой новой записи). Пока что этот принцип не подводил. «Нет времени объяснять, используй ID!»
#программист #it #itтехнологии #обучениепрограммированию #информационныетехнологии #айтишник #программирование #программированиеснуля #программированиедляначинающих #языкпрограммирования #технологии #образование #студенты #личныйопыт #json
🔥 Понравилось? Подпишись! Победим восстание роботов вместе! 🔥
🚀 P.S. Ты можешь круто поддержать меня и проект "Войти в IT" на boosty! Я публикую там более эксклюзивный и профессиональный, иногда немного личный контент. Хочешь посмотреть как я выгляжу в реальной жизни? Тогда жми: Ссылка 🚀
P.S.2 У меня ещё есть Telegram-канал. Там посты чуть попроще, и чуть повеселей. Ссылка