Rails has_many: through - Soll ich eine Primärschlüsselspalte behalten?

8

Ich habe die Tabellen 'author' und 'book' in einer has_many: through-Tabelle 'author_book'

Soweit ich das beurteilen kann, gibt es keinen Grund zu einem: id-Primärschlüsselfeld in der "author_book" -Tabelle ... aber bevor ich mich dieser Idee anschloss, wollte ich nur bestätigen. Gibt es also einen Grund dafür, die ID-Spalte in einer has_many: through-Tabelle zu belassen?

Vielen Dank im Voraus ...

    
PlankTon 24.12.2012, 23:02
quelle

3 Antworten

8

Behalte es. Später werden Sie feststellen, dass sich der eindeutige Identifikator auf eine Weise auszahlt, die anfangs nicht offensichtlich ist.
Im Gegensatz zu anderen agilen Entwicklungsprinzipien ist es besser, Datenqualitätsthemen wie diese im Voraus zu adressieren.

    
Michael Durrant 24.12.2012, 23:13
quelle
3

Wenn Sie jemals etwas Einzigartiges in der Beziehung zwischen Autor und Buch haben, benötigen Sie id , um es in dieser Tabelle über ein AuthorBook -Modell zu setzen. Es klingt in diesem Fall nicht wie ein wahrscheinliches Szenario, und Sie können es später bei Bedarf hinzufügen.

    
PinnyM 24.12.2012 23:05
quelle
3

Wenn es sich um has_many through handelt, bedeutet dies, dass author_book ein aktives Rekordmodell ist. Bitte lassen Sie die ID für sie zurück. Aber wenn Sie has_and_belongs_to_many Verbindungstabelle verwenden, brauchen Sie keine ID Ссылка

    
Ollie Cooks 24.12.2012 23:05
quelle