Пользовательский идентификатор Ruby On Rails - PullRequest
0 голосов
/ 09 июня 2009

Привет, я хочу иметь собственные идентификаторы для таблицы и не использовать auto_increment по умолчанию. Это возможно? Я включил: id => false и позже я создаю t.column: id,: bigint Но когда я создаю новую запись, идентификатор устанавливается в NULL

Есть ли способ обойти это поведение? Я мог бы установить свой первичный ключ в поле uid (на самом деле это идентификатор Facebook), но обычно он ломается для меня, поскольку отношения обычно ищут поле id

Ответы [ 2 ]

2 голосов
/ 09 июня 2009

Почти наверняка будет проще использовать суррогатный автоинкрементный идентификатор Rails в качестве основного идентификатора.

Нет проблем с наличием второго уникального столбца facebook_id и выполнением всех ваших поисков на основе этого поля, но по причинам совместимости, о которых вы упомянули (т.е. авторы плагинов делают предположения, что не должны), я бы придерживался значений по умолчанию Rails так же, как разумный. Проблемы производительности, связанные с первичными ключами по сравнению с уникальными ключами, минимальны

1 голос
/ 09 июня 2009

Я не знаю, где проблема. Конечно, id равен NULL, когда вы отключаете auto_increment для столбца id и не вводите значение id вручную.

Кстати: вы можете определить внешний и первичный ключи для отношений. Нет проблем использовать facebook_id в качестве первичного ключа.

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