Два первичных ключа? (Telegram chat_id) - PullRequest
0 голосов
/ 09 июня 2019

Я проектирую базу данных с ERD для бота Telegram и хочу сохранить пользователей.Каждый пользователь получает идентификатор (первичный ключ, int) и идентификатор чата из Telegram (int).

API Telegram Bot говорит об идентификаторе чата: «Уникальный идентификатор целевого чата или имя пользователя целевого канала» https://core.telegram.org/bots/api

Теперь мой вопрос: является ли идентификатор чатавторой первичный ключ или внешний ключ или просто NOT NULL и UNIQUE?(Или что-то, чего я никогда раньше не слышал)

1 Ответ

1 голос
/ 11 июня 2019

Это довольно простая спецификация.

Мое беглое прочтение ссылки заключается в том, что в зависимости от вызова возвращается несколько разных сущностей. Каждый из них имеет целочисленный первичный ключ, который они называют идентификатором.

Из спецификации неясно, как он возвращает ссылки на другие объекты - например, определение Chat ссылается на имя пользователя, в то время как объект сообщения имеет поле с именем из , которое имеет тип user . Это может быть имя, идентификатор пользователя или внедренный объект. Если вы создаете базу данных для поддержки этого, то любые встроенные объекты должны храниться как внешние ключи к идентификатору встроенного объекта, и вам, возможно, придется поискать все, что возвращено в вызове, чтобы найти правильный идентификатор.

Я думаю, что некоторые эксперименты или примеры звонков помогут - вам может быть полезно поэкспериментировать с Почтальоном, который позволит вам запускать вызовы вручную и проверять результаты.

...