W jaki sposób, używając Rails, mogę ustawić klucz podstawowy tak, aby nie był kolumną o typie całkowitym?
Używam migracji Railsów do zarządzania schematem bazy danych i tworzę prostą tabelę, w której chciałbym użyć wartości niecałkowitej jako klucza podstawowego (w szczególności łańcucha). Aby oddalić się od mojego problemu, powiedzmy, że istnieje stółemployees
gdzie pracownicy są identyfikowani przez ciąg alfanumeryczny, np."134SNW"
.
Próbowałem utworzyć tabelę w migracji w następujący sposób:
create_table :employees, {:primary_key => :emp_id} do |t|
t.string :emp_id
t.string :first_name
t.string :last_name
end
To, co mi to daje, wydaje się całkowicie ignorować linięt.string :emp_id
i poszedł dalej i uczynił z niego kolumnę całkowitą. Czy jest jakiś inny sposób na wygenerowanie przez szyny ograniczenia PRIMARY_KEY (używam PostgreSQL) dla mnie, bez konieczności pisania SQL wexecute
połączenie?
UWAGA: Wiem, że nie jest najlepiej używać kolumn ciągów jako kluczy podstawowych, więc proszę nie odpowiadać tylko, aby dodać klucz podstawowy liczby całkowitej. I tak mogę dodać jeden, ale to pytanie jest nadal ważne.