Идентификатор (автоинкрементное целое) и строковый идентификатор сотрудника в качестве первичного ключа - приложение rails

Я пишу свое первое приложение для рельсов и хочу с самого начала выработать хорошие привычки. Рассматриваемая таблица предназначена для хранения данных о сотрудниках, одним из полей которой является идентификатор менеджера. Чтобы отразить иерархическую структуру, я думаю об использовании act_as_tree, поэтому parent_id будет полем идентификатора менеджера (правильно?). Если мы будем использовать (импортировать) данные из нашего существующего приложения для управления персоналом — PeopleSoft — идентификатор сотрудника будет строкой. Идентификатор сотрудника, кажется, имеет наибольший смысл в качестве PK (исходя из точки зрения разработчика PeopleSoft, я понимаю, что могу быть предвзятым и / или не вижу всех возможностей - я также приветствую предложения по этому поводу)

Я знаю, что одна из философий, лежащих в основе рельсов, — это «соглашение важнее конфигурации», поэтому я хотел бы использовать значения по умолчанию — PK является автоинкрементным целым числом. Имеет ли смысл в этом случае создать «таблицу поиска» или что-то еще, чтобы поддерживать использование/ассоциацию идентификатора, поступающего от PS? Будут отчеты/экспорты, возвращающиеся в мир PS....

Спасибо


person bill    schedule 05.11.2010    source источник


Ответы (1)


Вы правы в том, что соглашение в Rails заключается в использовании автоинкрементного id по умолчанию. Если у вас есть отношение один к одному между людьми и идентификаторами сотрудников, то идентификатор сотрудника должен быть просто полем (столбцом) в вашей модели человека. Сделайте его ключом (но не первичным ключом), если вы собираетесь выполнять много поисковых запросов, используя его.

person Jordan Running    schedule 05.11.2010