Was soll ich einen Tabellennamen, die zusammen zwei Tabellen abbildet? [geschlossen]
-
06-07-2019 - |
Frage
Lassen Sie uns sagen, ich habe zwei Tabellen:
Table: Color
Columns: Id, ColorName, ColorCode
Table: Shape
Columns: Id, ShapeName, VertexList
Was soll ich den Tisch aufrufen, die Farbkarten zu gestalten?
Table: ???
Columns: ColorId, ShapeId
Lösung
Es gibt nur zwei harte Dinge in Informatik: Cache-Annullierungs und Namensgebung Dinge
- Phil Karlton
Kommen mit einem guten Namen für einen Tisch, die eine many-to-many
Beziehung darstellt, macht die Beziehung leichter zu lesen und zu verstehen. Manchmal einen großen Namen zu finden, ist nicht trivial, aber in der Regel lohnt es sich, einige Zeit darüber nachzudenken, zu verbringen.
Ein Beispiel:. Reader
und Newspaper
Ein Newspaper
hat viele Readers
und ein Reader
viele Newspapers
hat
Sie können die Beziehung NewspaperReader
nennen, aber ein Name wie Subscription
könnte vermitteln besser, was die Tabelle geht.
Der Name Subscription
auch idiomatische in Fall Sie später auf den Tisch zu Objekten zuordnen möchten.
Die Konvention many-to-many
Tabellen für die Benennung ist eine Verkettung des Namen der beiden Tabellen, die in der Beziehung beteiligt sind. ColourShape
wäre ein vernünftiger Standard in Ihrem Fall sein. Das heißt, ich glaube, Nick D kam mit zwei guten Vorschlägen auf: Style
und Texture
Andere Tipps
Wie wäre es ColorShapeMap oder Style oder Textur .
Interessante etwa die Hälfte der Antworten ein allgemeiner Begriff für jede Tabelle geben, die eine viele-zu-viele-Beziehung implementiert, und die andere Hälfte der Antworten vorschlagen, einen Namen für diese bestimmte Tabelle.
Ich rief diese Tabellen Kreuzungen Tabellen im Allgemeinen.
Im Hinblick auf den Namenskonventionen, geben die meisten Menschen einen Namen, der eine Mischung aus den beiden Tabellen in der many-to-many-Beziehung ist. Also in diesem Fall „ColorShape
“ oder „ShapeColor
.“ Aber ich finde, das sieht künstlich und unbeholfen.
Joe Celko empfiehlt in seinem Buch „SQL Programming Style“, um diese Tabellen in irgendeiner natürlichen Sprache Weise zu nennen. Zum Beispiel, wenn eine Form von einer Farbe gefärbt ist, benennen Sie dann die Tabelle ColoredBy
. Dann könnten Sie ein Diagramm, das mehr oder weniger natürlich wie folgt lautet:
Shape <-- ColoredBy --> Color
Im Gegensatz dazu können Sie eine Farbe Farben eine Form sagen:
Color <-- Colors --> Shape
Aber das sieht aus wie die mittlere Tabelle die gleichen wie Color
mit einer Vielzahl von Namenskonvention ist. Zu verwirrend.
Wahrscheinlich ist die meisten klar die ColoredBy
Namenskonvention zu verwenden. Interessant, dass die passive Stimme mit macht die Namenskonvention klarer.
Benennen Sie die Tabelle, was auch immer Sie mögen, so lange, wie es ist informativ:
COLOR_SHAPE_XREF
Von einem Modell Perspektive wird die Tabelle a / corrollary / Querverweistabelle beitreten genannt. Ich habe die Gewohnheit, mit _XREF
am Ende gehalten, um die Beziehung offensichtlich zu machen.
Eine Zuordnungstabelle ist, was dieser ist in der Regel genannt.
ColorToShape
ColorToShapeMap
Dies ist ein Assoziative Entity und ist ziemlich oft erheblich in seinem eigenen Recht.
Zum Beispiel kann ein vieles zu viel Beziehung zwischen ZüGEN und TIMES führt zu einem ZEITPLAN.
Wenn es keine offensichtliche neue Einheit (wie Zeitplan), dann die Konvention ist es, die beiden Worte zusammen zu laufen, so dass COLOUR_SHAPE oder ähnliches.
ich in der Regel hören, dass ein Junction Tabelle genannt. Ich nenne die Tabelle von dem, was sie verbindet, so in Ihrem Fall entweder color oder ShapeColor. Ich denke, dass es mehr Sinn für eine Form macht eine Farbe als haben, um eine Farbe, eine Form zu haben, so würde ich mit ShapeColor
gehen.
Ich habe mit DBAs gearbeitet, dass es eine rufen Join-Tabelle .
Colour_Shape ist ziemlich typisch -. Es sei denn, die Beziehung einen expliziten domänenspezifischen Namen hat
ODER Bridge Table
ODER Join Table
ODER Map Table
ODER Link Table
ODER Cross-Reference Table
Das kommt zum Einsatz, wenn wir viele-zu-viele-Beziehungen gehen, wo die Schlüssel von beiden den Tabellen der Verbundprimärschlüssel der Verknüpfungstabelle bildet.
Zwischen Tabelle oder Join-Tabelle
Ich würde nennen es „ColorShapes“ oder „color“, je nach Ihren Wünschen
Ich empfehle eine Kombination der Namen von Entitäten verwendet werden und sie in den Plural gesetzt. Daher der Name der Tabelle wird Verbindung "many-to-many" auszudrücken.
In Ihrem Fall:
Farbe + Form = ColorsShapes
Ich habe auch gehört der Begriff Assoziative Tabelle.
ein Name für die Tabelle könnte etwas bedeutet, wird ColorShapeAssociations
, dass jede Reihe zwischen dieser Farbe und dieser Form eine Verbindung darstellt. Die Existenz einer Reihe bedeutet, dass die Farbe in dieser Form kommt, und dass die Form kommt in dieser Farbe. Alle Zeilen mit einer bestimmten Farbe wäre die Menge aller Formen der Farbe zugeordnet ist, und die Zeilen für eine bestimmte Form würde die Menge aller Farben sein, die Form kam in ...
In der Regel die meisten Datenbanken haben eine Art Konvention der Namensgebung für Indizes, Primärschlüssel und so weiter. In PostgreSQL hat die folgende Benennung vorgeschlagen worden:
- Primärschlüssel: tablename_columnname_ pTaste
- eindeutige Einschränkung: tablename_columnname_ Taste
- exklusive Einschränkung: tablename_columnname_ ohne
- Index für andere Zwecke: tablename_columnname_ idx
- Fremdschlüssel: tablename_columnname_ fkey
- Sequenz: tablename_columnname_ f
- Trigger: tablename_actionname_after | before_ trig
Ihre Tabelle ist eine verknüpfte Tabelle zu mir. Bleiben im Einklang mit der Namensgebung über ich folgende wählen würde:
- verknüpften Tabelle: tablename1_tablename2_ lnk
In einer Liste von Tabellenobjekten der verknüpfte Tabelle nach tablename1 sein wird. Dies könnte optisch ansprechender sein. Aber man könnte auch einen Namen wählen, der den Zweck des Links beschreibt, wie andere vorgeschlagen haben. Dies könnte den Namen der Spalte id kurz halten helfen (wenn Ihr Link seinen eigenen Namen id haben muss und in anderen Tabellen verwiesen wird).
- oder gemocht Tabelle: purposename_ lnk
Ich habe immer teilweise schon auf den Begriff „Hamburger Tabelle“. Sie wissen nicht, warum -. Es nur gut klingt
Oh, und ich würde die Tabelle ShapeColor oder color je nachdem, welche nennen, ist die am häufigsten verwendete Tabelle.
"Many-Many" Tabelle. Ich würde es nennen „ColourShape“ oder umgekehrt.
Es ist schwer, etwas so willkürlich wie diese zu beantworten, aber ich neige Toshs Idee bevorzugen es nach etwas in der eigentlichen Domäne anstatt einige allgemeine Beschreibung der zugrunde liegenden Beziehungen zu benennen.
Oft diese Art von Tisch zu etwas reicher für das Domänenmodell entwickeln wird und zusätzliche Attribute über und jenseits der verlinkten Fremdschlüssel nehmen.
Zum Beispiel, was passiert, wenn Sie eine Textur zusätzlich speichern müssen färben? Es könnte ein bisschen flippig scheint die SHAPE_COLOR Tabelle zu erweitern ihre Textur zu halten.
Auf der anderen Seite gibt es auch etwas für die Herstellung eine gut informierte Entscheidung gesagt werden, basierend auf, welche Anforderungen Sie haben heute und sind bereit, Refactoring, wenn zusätzliche Anforderungen später eingeführt werden.
Alles, was gesagt, würde ich es nennen SURFACE wenn ich Einsicht hatte, dass es zusätzliche Oberflächenähnliche Eigenschaften später eingeführt werden würde. Wenn nicht, würde ich keine Probleme haben es SHAPE_COLOR oder etwas Derartiges fordern und Bewegen auf dringlichere Designprobleme.
Vielleicht nur ColoredShape
?
Ich bin mir nicht sicher, ob ich die Frage zu bekommen. Ist das zu diesem speziellen Fall oder suchen Sie allgemeine Richtlinien?
Ich würde es mit den genauen Namen der Tabellen name = color verbunden werden.
Zusätzlich zu welchen Entwicklern Kunst hat im Zusammenhang,
ColorShape
wäre eine übliche Namenskonvention sein. In ER-Diagramm, wäre es eine Beziehung sein.
Nennen Sie es eine Querverweistabelle.
XREF_COLOR_SHAPE
(
XCS_ID INTEGER
C_ID INTEGER
S_ID INTEGER
)
würde ich r_shape_colors
oder r_shape_color
je nach ihrer Bedeutung verwenden.
r_
wäre ein Ersatz für xref_
in diesem Fall.
Meine Stimme ist für einen Namen, der die Tabelle am besten beschreibt. In diesem Fall könnte es ein Name unterscheidet sich von einer Verkettung ist besser ShapeColor
aber in vielen Fällen werden. Ich mag die Lesbarkeit und für ich , das heißt, keine Suffixe, keine Unterstreichungen und keine Präfixe.
Ich persönlich würde für Colour_Shape, mit dem Unterstrich gehen: nur weil ich diese Konvention ein wenig ganz aufdrehen gesehen habe. [Aber ich stimme hier mit den anderen Beiträgen, dass es wahrscheinlich mehr sind ‚poetisch‘ Wege, dies zu tun].
Beachten Sie, dass die Fremdschlüssel auch auf diese Join-Tabelle erstellt werden soll, die sowohl die Farbe & Shape-Tabellen, die auch mit dazu beitragen würde die Identifizierung der Beziehung verweisen würde.
Eine Konvention ich viel zu sehen für Tabellen verknüpft, die ich persönlich mag, ist ‚Colour_v_Shape‘, die ich Folk umgangssprachlich als ‚im Vergleich zu Tabellen‘ bezieht ich habe gehört.
Es macht es auf einem Blick deutlich, dass die Tabelle eine many-to-many-Beziehung darstellt und hilft, dass (wenn auch selten) verwirrende Situation zu vermeiden, wenn Sie versuchen, zwei Worte zu verketten, die sonst ein zusammengesetztes Wort bilden könnten, zum Beispiel ‚Butter‘ und ‚Milch‘ kann sich ‚Buttermilch‘, aber was, wenn Sie auch eine Entität darstellen genannt ‚Buttermilch‘ benötigt?
es auf diese Weise tun, würden Sie haben ‚Butter_v_Milk‘ und ‚Buttermilch‘ -. Keine Verwirrung
Auch Ich mag es zu denken, ist eine Referenz Foo Fighters in der ursprünglichen Frage.