Использование дополнительных синтетических полей вместо первичных ключей для справочных таблиц - PullRequest
0 голосов
/ 09 декабря 2010

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

Теперь, если бы я создавал схему, я бы просто использовал Person.id для ссылки на записи в этом. Мне сказали, что приложение использует столбцы «токенов» для облегчения миграции данных между различными серверами.

У меня вопрос, это что-то довольно распространенное или просто странный дизайн?

Ответы [ 2 ]

1 голос
/ 09 декабря 2010

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

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

1 голос
/ 09 декабря 2010

Это кажется странным дизайном.

Я не видел ничего подобного раньше.

Это кажется излишним, и мне нужно будет увидеть реализации Index / Foreign key. Также не хотелось бы видеть реализацию токена-генератора ...

Когда вы говорите, что мне сказали, что приложение использует столбцы "токенов" для упрощения миграции данных между различными серверами. это для репликации? Или просто от тестирования к разработке?

В общем, это не похоже на лучший дизайн, который я встречал.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...