2010-12-22 9 views
21

Was ist ein Tabellenpräfix und was sind ihre Vor- und Nachteile? Dies ist in Bezug auf MySQL.Was ist ein Tabellenpräfix?

+0

Welche Art von Datenbank verwenden Sie? – RYFN

+0

Beziehen Sie sich auf ein Tabellenname-Präfix wie tblTasks oder das Schema, dbo.tasks – Robb

+0

sorry, meine Datenbank mysql – alioygur

Antwort

20

Dies wird oft verwendet, um verschiedene Installationen desselben Skripts voneinander zu unterscheiden. Angenommen, Sie haben zwei Joomla-Installationen mit unterschiedlichen Inhalten auf Ihrem Server, aber nur eine MySQL-Datenbank.

Nun können Joomla-Installationen aus naheliegenden Gründen nicht dieselben Datenbanktabellen verwenden, da beide Installationen den gleichen Inhalt anzeigen würden. Und das ist, wo das Präfix tritt ein.

Durch die Verwendung verschiedener Tabelle Präfixe können Sie Joomla Installation # 1 wissen, dass es die gesamte Tabelle mit Präfix JOS_ verwenden soll und Joomla Installation # 2 muss alle Tabellen mit verwenden das Präfix JOS2_

0

Je nach Ihrer Namenskonvention kann es hilfreich sein, zwischen Tabellen und Ansichten zu unterscheiden.

Der Nachteil ist, dass Sie in Bezug auf den Namen einer Tabelle möglicherweise eingeschränkt sind. Oracle hat ein Limit von 30 Zeichen dafür. Wenn Sie "Tbl_" als Präfix verwenden, verlieren Sie automatisch 4 Zeichen. Das könnte ein Problem sein.

3

Tabellen erfordern keine Präfixe.

Das liegt ganz bei Ihnen.

Wir haben jedoch Präfix-Tabellen mit Bezug auf die MODULE in der Anwendung, zu der sie gehören, nur um die Tabellen leichter zu gruppieren.

4

Einige Leute befürworten tbl oder tbl_ (z. B. tbl_MyTable oder tblMyTable), während andere ein Suffix wie MyTable_T verwenden.

Persönlich vermeide ich die Präfixe/Suffixe. Ich kann in einer View anstelle einer Tabelle ersetzen, wenn sich ein Schema im Laufe der Zeit ändert, so dass ich nicht wirklich zwischen den beiden Objekttypen unterscheiden kann.

Die wichtigste Sache ist, dass Sie Ihre Benennungsrichtlinien in Ihrem Team dokumentiert haben und Sie alle die gleichen Richtlinien für Konsistenz einhalten.

3

Tabellenpräfixe sind auch als zusätzliche Sicherheitsmaßnahme nützlich. Beispielsweise werden durch das Hinzufügen von Tabellenpräfixen häufig verwendete Tabellennamen verdeckt, sodass Hacker durch SQL-Injection oder andere Sicherheitslücken nicht mehr auf Daten in Ihrer Datenbank zugreifen können, da sie zuerst herausfinden müssen, wie sich Ihre Tabellennamen verhalten.

Achten Sie jedoch darauf, Tabellenpräfixe nur als weitere Sicherheitsstufe und nicht als einzige Sicherheitsmethode zu betrachten. Sie sollten weiterhin andere Sicherheitsmaßnahmen ergreifen, um SQL Injection und andere ähnliche Bedrohungen zu vermeiden. Je nachdem, wie Ihr Code eingerichtet ist, kann es beispielsweise für einen Hacker immer noch möglich sein, einen "show tables" -Befehl über SQL Injection auszuführen, um die Namen Ihrer Datenbanktabellen abzurufen.

1

Seltsam niemand erwähnte, dass Sie auch Tabellenpräfixe verwenden können, um normalerweise reservierte Schlüsselwörter als Tabellennamen zu verwenden.

z. t_user oder t_order sind jetzt möglich.

+0

Sie können einen beliebigen Namen für eine MySQL-Tabelle verwenden, zum Beispiel 'CREATE TABLE \' DROP DATABASE Webshop; \ '(\' value \ 'INT)' –

1

Wenn Sie eine komplizierte Website- und Datenbankstruktur haben, können Tabellenpräfixe Namenskonflikte in der Datenbank verhindern.

Sie sehen oft Tabellenpräfixe in Situationen, in denen:

  • Mehrere Skripte integriert werden zusammen in eine Website, und die fertige Website muss Daten teilen, aber die Tabellennamen ohne Präfix einzigartig in Konflikt geraten würde jedes Skript.

  • Sie fügen einem von Ihnen erworbenen Skript Funktionen hinzu und möchten zwischen Tabellen, die für dieses Skript nativ sind, und neuen Tabellen, die Sie manuell erstellen, unterscheiden. Auf diese Weise wird es beim Erstellen einer neuen Tabelle nicht zu Konflikten mit zukünftigen Aktualisierungen des Basisskripts kommen, da es ein anderes Tabellenpräfix hat.

  • Sie haben einen Hosting-Plan, der Ihnen nur eine Datenbank gibt und Sie möchten diese Datenbank für die Wartung mehrerer Skripts verwenden. (Dies ist für eine Vielzahl von Gründen empfohlen, aber ich habe gesehen Benutzer dies tun.)

Wenn Sie ein Skript von Grund auf neu zu schreiben, Tabellenpräfixe sind in der Regel nicht erforderlich, da Sie alle Aspekte steuern der Datenbankstruktur. Wenn Sie mehrere Skripte zusammen integrieren, wird es nützlich und manchmal sogar notwendig. Es ermöglicht Ihnen das Erstellen eindeutiger Datensichten und das Verknüpfen von Tabellen zwischen verschiedenen Skripts, ohne sich um Benennungskonflikte in der Datenbank kümmern zu müssen.