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
War es hilfreich?

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

Junction table

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top