2009-07-10 1 views
1

Sorry für die nicht so großen Titel zu bauen, aber ich bin gespannt, wie die Leute das folgende BeispielWie eine Kategorie Tisch

Zwei Spalten eine Kategorie Tabelle in SQL gegeben bauen: ID, KATEGORIE

Welche dieser Möglichkeiten würdest du die Spalten nennen?

ID, KATEGORIE

ID, BESCHREIBUNG

CAT_ID, CAT_DESC

Oder etwas anderes? Ich frage mich nur, was andere Leute machen. Entschuldigung, wenn das nicht klar ist. Ich hoffe, es lohnt sich zu antworten, denn das Feedback wäre großartig.

Antwort

0

Ich persönlich mag nicht die "CAT_ID" "CAT_DESC" Nomenklatur, ich bevorzuge eher "BESCHREIBUNG" und "ID". Der Nachteil ist jedoch, dass Sie, wenn Sie Verknüpfungen für Tabellen mit den gleichen Spaltennamen erstellen, in der Projektion die Spalten umbenennen müssen, um anzugeben, welches Attribut von welcher zugrunde liegenden Tabelle stammt.

Der Nachteil der "CAT_ID", usw., etc. Ansatz ist, dass Sie mit Namen, die nicht eine einfache singuläre Bedeutung haben, kommen können.

Die Verwendung der Tabelle und der Arten von Queries/Joins/Projektionen sollte Ihnen dabei helfen zu ermitteln, welche für Ihre Arbeit am besten geeignet ist.

2

Ich nehme an, Sie möchten eine Kategorietabelle mit automatisch generierten IDs und entsprechenden Kategorienamen. Wenn dies der Fall ist, würde ich die Tabelle CATEGORY benennen und die Felder ID und NAME haben.

1

Dies liegt wirklich an Ihnen und was Ihr Projekt erfordert.

  • id (128)
  • Titel (Hunde und ihre Besitzer)
  • Beschreibung (Training Informationen für neue Hundebesitzer)
  • ITEM_COUNT: Sie können mit hinwollen (6)
  • is_active (y)

Hängt von Ihrem Projekt und seinen Anforderungen ab. Dies kann so einfach sein wie Sie möchten, oder so kompliziert. Andere Felder können sein:

  • DATE_CREATED (2009-07-10 05:32:28)
  • parent_id (Für Unterkategorien)
  • created_by (user123)
  • ...
+0

Dies beantwortet nicht wirklich die Frage - er fragt speziell über die Benennung von zwei Spalten. – Draemon

1

Ich würde sie "Category_ID" und "Category" nennen.

Auf diese Weise

  • Wenn Sie es mit einer anderen Tabelle und die Tabelle hat eine Spalte „category_id“ es hat die gleichen Namen wie die „category_id“ in der Kategorie Tabelle.
  • Wenn Sie es mit einer anderen Tabelle verbinden, wird die Spalte "Kategorie" eindeutig identifiziert, was nicht der Fall wäre, wenn Sie "Beschreibung" (und "Beschreibung" für die Elemente in der Kategorie) hätten.
3

Diese Frage ist sehr subjektiv. Wie bei den meisten Programmierproblemen gibt es eine Million und einen richtigen Weg, Dinge zu tun. es geht nur um deine persönlichen Vorlieben und was du denkst wird am einfachsten sein. Sie müssen überlegen, welche Informationen über die Kategorie erforderlich sind und welche anderen Tabellen Sie kategorisieren. Sie werden definitiv eine Primärschlüsselspalte in Ihrer Tabelle benötigen, weil ich nehme an, dass Sie der Kategorietabelle auf einem anderen beitreten möchten. aber abgesehen davon könnten Sie ein kurzes Textfeld namens title oder so etwas und ein langes Textfeld namens description oder etwas ähnliches in Betracht ziehen. Wenn Sie Benutzern das Erstellen dieser Objekte über ein WebUI ermöglichen möchten, sollten Sie eine Spalte user_id einbeziehen. Denken Sie wieder darüber nach, wofür Sie diese Tabelle wirklich benötigen, und gestalten Sie sie nach Ihren Bedürfnissen.

-C

+0

Ich denke, die Frage ist nur die Namen der beiden Spalten, nicht eine Frage, wie viele/welche Spalten benötigt werden. – BlaM

1

Ich würde die Tabelle "Kategorie" aufrufen und die Spalten "id", "Name" und "Beschreibung". "category" ist ein schlechter Name für die name/description-Spalte, da es Ihnen nicht wirklich sagt, was es ist. Name und Beschreibung sind wirklich zwei verschiedene Dinge, daher die zwei Spalten. Sie können die Beschreibung auslassen, wenn Sie nur den Namen möchten.

"ID" vs "Kategorie_ID" ist noch subjektiver, nur konsequent sein.

1

Wie andere gesagt haben, ist dies sehr subjektiv und wo gibt es keine absoluten Rechte (das heißt, es könnte sicherlich ein falscher Weg, oder zumindest einige ungünstige sein).

Persönlich würde ich eine Tabelle namens "Kategorie" mit den Feldern id_cate, name_cate und description_cate (oder etwas ähnliches, aber Sie erhalten die Grundidee) erstellen. Der Grund, warum man jeden Namen mit "_cate" verketten würde, ist, dass wenn Sie Tabellen in einer Abfrage verknüpfen, wo Felder den gleichen Namen haben, Sie jetzt durch seine Erweiterung die Tabelle, zu der es gehört, entfernen müssen, so dass Sie

tun müssen
select * from Table1Name inner join Table2Name on Table1Name.ID = Table2Name.ID 

Sie werden nur schreiben:

select * from Table1Name inner join Table2Name on id_tab1 = id_tab2 

Wie gesagt und wird von anderen erwähnt, gibt es keinen besten Weg, dies zu tun. Jeder entwickelt nur einen Stil/eine Technik, mit der er sich am wohlsten fühlt und am besten lesbar erscheint. Solange Sie konsistent und komfortabel mit Ihrem Stil sind, ist es nicht so wichtig.

2
  • Der Tabellenname ist Kategorie - das sagt Ihnen etwas.
  • Die Spaltennamen können einfach "ID" und "BESCHREIBUNG"
  • category.id und Kategorie sein.Beschreibung Aussehen sauber und einfach