8

I ‚Autor‘ und ‚Buch‘ Tabellen haben, trat in einer has_many: durch Tabelle ‚author_book‘Rails has_many: through -> Soll ich eine Primärschlüsselspalte behalten?

Soweit ich das beurteilen kann, gibt es keinen Zweck zu einem: id Primärschlüsselfeld auf dem 'author_book Tisch ... aber bevor ich mich dieser Idee anschloss, wollte ich nur bestätigen. Gibt es also einen Grund, die 'id' Spalte in einer has_many: through Tabelle zu belassen?

Vielen Dank im Voraus ...

+0

Sie müssen Sie 2-Indizes für diese Beziehungen hinzufügen sicher: add_index table_name, [: author_id,: book_id] add_index table_name, [: book_id,: author_id] Dies stellt sicher, dass Sie die Fähigkeit haben, jeden zu gehen Weg durch die Beziehung ohne Tabellenscans zu benötigen. Aus den Namen dieser Tabellen im Beispiel können Sie auch ein ': unique => true' hinzufügen, um Dubletten zu stoppen –

Antwort

8

Halten Sie es. Später wirst du feststellen, dass sich der einzigartige Identifikator auf eine Weise auszahlt, die anfangs nicht offensichtlich ist.
Im Gegensatz zu anderen agilen Entwicklungsprinzipien ist es besser, Datenqualitätspunkte wie diese im Voraus zu adressieren.

3

Wenn Sie jemals etwas Einzigartiges auf die Beziehung Autor-Buch haben, werden Sie die id müssen es über ein AuthorBook Modell in dieser Tabelle zu setzen. Es klingt in diesem Fall nicht nach einem wahrscheinlichen Szenario und Sie können es später bei Bedarf hinzufügen.

Verwandte Themen