2012-03-29 18 views
5

Es ist klar, dass Sie numerische Zeichen in SQL-Tabellennamen verwenden und sie verwenden können, solange sie nicht am Anfang stehen. (Es gibt eine Diskussion hier über eine der Nebenwirkungen: SQLite issue with Table Names using numbers?) Die Datenbank, die ich anvisiere, ist Oracle 10g/11g.Gute oder schlechte Idee, Zahlen in SQL-Tabellennamen aufzunehmen?

Ich entwerfe eine Berichtsdatenbank, in der die Benennung einiger Entitäten am besten durch die Beschreibung der Berichte erfolgt, die nach Nummern benannt sind ("Teil 45", "102S", "401"). Es ist nur die Geschäftsdomänensprache: Diese Berichte werden normalerweise nicht mit einem anderen Namen bezeichnet. Die Entitäten, die ich modelliere, sind am besten so benannt.

Meine Frage ist: werde ich Schwierigkeiten mit Wartung oder Programmierbarkeit haben, wenn ich Zahlen in einen Tabellennamen einfüge? Ich mache mir immer Sorgen um Zusatzsoftware rund um die Datenbank: Treiber, ETL-Code, der mit einem nicht-plain-vanilla-Namen nicht gut spielt. Aber es gibt einen wirklichen Vorteil in der Verständlichkeit in diesem Geschäftsbereich, also bin ich nur zimperlich?

Meine Frage lautet einfach: Gibt es irgendwelche "gotchas" oder Eckfälle, die einen Tabellennamen wie PART_45_AUDIT ausschließen würden?

+2

Keine, die ich mir vorstellen kann. –

+0

Obwohl nicht häufig anzutreffen, helfen Zahlen bei großen Datenbanken in vielerlei Hinsicht. Nicht viele Leute "wagen", sie zu benutzen. – NoChance

Antwort

7

Wenn PART_45_AUDIT wirklich die klarste Beschreibung der Entität ist, die Sie modellieren (was sehr selten wäre), sollte es keine Probleme geben, Nummern in der Mitte eines Namens zu haben. Es wäre eine andere Geschichte, die Zahlen vor den Namen zu setzen, denn dazu müssten doppelt zitierte Bezeichner verwendet werden, und es gibt viele Tools, die doppelte Bezeichner nicht vollständig unterstützen. Außerdem ist es natürlich ärgerlich, jedes Mal, wenn Sie auf die Tabelle verweisen, die doppelten Anführungszeichen einzugeben.

CREATE TABLE "102S" (
    col1 number 
); 

SELECT * 
    FROM "102S" 
+0

Danke. Yup, PART_45_AUDIT macht mich als Name unbehaglich, aber ich kann den Firmen-Jargon nicht alleine übersteuern. Jedes Mal, wenn ich versuche, einen allgemeineren Namen zu ersetzen, führt das zu Verwirrung. – deepgeek

Verwandte Themen