• Хорошо ли использовать id объекта стороннего сервиса как primary key в своей базе данных?

    @mantyr
    Пишу много Golang кода с удовольствием:)
    Вариантов несколько:
    1. Источник данных сомнительный и по id не всегда можно получить один объект, иногда бывает два и более - значит использовать его как primary не стоит, стоит сделать составной primary
    2. Планируется добавить другие источники - нужен составной primary
    3. Идентификаторы на источнике слишком большие и представляют собой не число, а строку со множеством заложенных в них данных - такой идентификатор не удобно использовать в привязке по своему коду, опять таки не факт что вам нужны все милионы объектов источника
    4. Планируется связывать объекты с другими объектами, в этом случае если идентификатор не удовлетворяет принятой концепции в базе то проще его продублировать собственным сохраняя связь с источником
    5. Если можно предположить что объекты будут так же вводить вручную (через админку или как-то ещё) или понадобится продублировать несколько объектов с чуть изменёнными свойствами то не понятно как сделать auto_increment такого primary key, в этом случае может произойти коллизия и по этому использовать сторонний ключ для primary не стоит


    В большинстве случаев - ответ "Нет", сторонний ключ в качестве primary использовать не стоит.
    Ответ написан
    Комментировать