2017-12-31 47 views
0

Betrachten Sie die folgende „user“ Tabelle:SQL Verknüpfungstabelle Namensgebung: so dass es lesbar vs. Konvention folgend

CREATE TABLE user (
    user_id INTEGER PRIMARY KEY NOT NULL, 
    nick_name TEXT NOT NULL UNIQUE 
) 

Jetzt habe ich ein many-to-many-Referenztabelle, den folgenden 2 Benutzer in einem “verbindet "Beziehung (das ist keine Zwei-Wege-Beziehung BTW).

Ich habe eine Menge über das Benennen von Sachen in sql gelesen, aber die meisten Male ist es wirklich inkonsistent (einige sagen PascalCase, einige snake_case zB.).

Meine Frage ist, welche der folgenden Benennung ist besser?

Lesbarkeit des> Konvention:

CREATE TABLE user_following_user (
    follower_user_id INTEGER NOT NULL, 
    target_user_id INTEGER NOT NULL, 
    FOREIGN KEY ... 
    PRIMARY KEY ... 
) 

Konvention> Lesbarkeit:

CREATE TABLE user_user_xref (
    user1_id INTEGER NOT NULL, 
    user2_id INTEGER NOT NULL, 
    FOREIGN KEY ... 
    PRIMARY KEY ... 
) 

Beachten Sie, dass es auch andere Tabellen sein können, die auch zwei Benutzer in Beziehung (sagen wir eine Sperrtabelle) haben, die Deshalb weiß ich nicht genau, wie man (Junction-) Tabellen richtig nennt.

Vielleicht gibt es einen anderen Weg Konventionen zu folgen, während die Lesbarkeit erhalten bleibt. Ich schätze jeden Tipp.

Antwort

2

Gehen Sie für die Lesbarkeit jedes Mal. Sei nett zu der Person, die deinen SQL-Code verwaltet; Es kann sein, dass du in 6 Monaten von jetzt an bist. Überprüfen Sie auch, woher die "Konventionen" kommen, die Sie befolgen. Welchen Grund hätte jemand, um eine Konvention zu definieren, die jegliche Erklärung dessen, was Sie tun, eliminiert (wie das zweite Beispiel)?
Sie können dies hilfreich finden: the names we give things.

+0

Danke, ich war mir nicht sicher, da ich relativ neu bin - sql, also hilft deine Antwort sehr! – paxikek

Verwandte Themen