Мне недавно пришлось работать с приложением, в котором большинство таблиц не ссылаются друг на друга через первичные ключи, а скорее полагаются на дополнительные искусственные поля. Например, допустим, есть таблицы Person (id, имя, токен) и Pet (id, name, personToken). Один человек может иметь много домашних животных. Pet.personToken будет внешним ключом, ссылающимся на Person.token.
Теперь, если бы я создавал схему, я бы просто использовал Person.id для ссылки на записи в этом. Мне сказали, что приложение использует столбцы «токенов» для облегчения миграции данных между различными серверами.
У меня вопрос, это что-то довольно распространенное или просто странный дизайн?