Verwandtschafts-Sql Datenbanken

Bookmark and Share this Article Original English article

Denken Sie an eine Datenbank, die die Spieler in einem Spiel bis eins andere bezog (zum Beispiel, festzustellen wem ein Freund jedes Spielers waren und das ein Feind jedes Spielers war).

Lassen Sie uns zuerst herstellen eine Tabelle, um die Daten für jeden der Spieler zu speichern. Beachten Sie die Hinzufügung eines Primärschlüssels, der Ihnen erlaubt, auf die Tatsache zu bauen, daß alle Reihen ein einzigartiges auffangen lassen, das als Hinweis verwendet werden kann. Merken Sie auch, daß jede Reihe von Daten im Primärschlüssel bis eine andere einzigartig sein muß. Ist hier die Aussage, die erfordert wird, um unsere Datenbank (genannt gamedata) und unsere playerdata Tabelle herzustellen.

mysql > VERURSACHEN DATENBANK gamedata; mysql > 
GEBRAUCH gamedata; mysql > VERURSACHEN TABELLE playerdata (- > 
username CHAR(255) EINZIGARTIGES NICHT UNGÜLTIGES, - > datecreated 
Kennwort CHAR(255), - > das Alter INTERN, - > ZEITSTEMPEL, - > 
PRIMÄRKEY(username));

_ beachten hier wie wir einstellen d username Spalte zu EINZIGARTIG und auch NICHT UNGÜLTIG. In den einfachen Bezeichnungen bedeutet dieses, daß es einen Wert enthalten muß und daß Wert derselbe wie kein anderes username in irgendeiner anderen Aufzeichnung in der Tabelle sein darf. Merken Sie auch, daß wir den Primärschlüssel der Tabelle eingestellt haben, um das username zu sein auffangen, da wir hauptsächlich auf diesem auffangen suchen werden, das Sie in einen Moment sehen.

Zusätzlich zu diesen Informationen benötigen wir auch irgendeine Weise, Freunde und Feinde zu speichern. Dieses wird mittels einer Verbindung Tabelle getan. Eine Verbindung Tabelle ist eine normale Datenbanktabelle wirklich gerecht, aber sein Hauptzweck ist, Daten oder andere auf gewisse Weise zu beziehen, um Raum zu konservieren und die Weise zu optimieren die Datenbankzugriffe die Informationen.

Lassen Sie uns zwei Verbindung Tabellen, eine für die in Beziehung der Freunde und eine herstellen für Feinde miteinander beziehen. Das Folgen sind die Aussagen, die angefordert werden, um dieses zu vollenden.

Anmerkung 

Wenn Verbindung Tabellen benutzt werden, soll die optimierte Weise INTERNE Werte dort speichern und eine Identifikation mit auto_increment in der playerdata Tabelle als Primärschlüssel auffangen lassen. Sie ist, nicht da lesbar, wenn Sie ein AUSERWÄHLTES durchführen, aber es von innerhalb Ihren Anwendungen schneller ist. Wenn es den Namen eines Spielers aktualisiert, bricht sie nicht die Vollständigkeit der Datenbank. Auch Verbindung Tabellen sind häufig die verwendet zu werden Strukturen,, nur wenn es n Menge Relationen von einer Reihe zu anderen Reihen gibt. Wenn es immer nur eine Relation (ein Freund oder Feind) gibt, sollte eine direkte Verbindung verwendet werden.

mysql > VERURSACHEN TABELLE relatefriends (- > Spieler 
CHAR(255), - > Freund CHAR(255));

Auch:

mysql > VERURSACHEN TABELLE relateenemies (- > Spieler 
CHAR(255), - > Feind CHAR(255));

Wenn wir jetzt darstellen, befehlen die Tabellen in der Datenbank mit dem folgenden:

mysql > ERSCHEINEN-TABELLEN;

... können wir sehen, daß unsere Datenbank jetzt drei unterschiedliche Tabellen unsere—playerdata Tabelle und die zwei Verbindung Tabellen enthält.

Lassen Sie uns jetzt eine Probe von Daten dem Spielerdatentabelle hinzufügen, also können wir mit den Verbindung Tabellen experimentieren und die Logik von, wie man verstehen sie effektiv benutzt. Ist hier die Aussage, die erfordert wird, um unsere Beispieldaten dem playerdata Tabelle hinzuzufügen:

mysql > EINSATZ IN playerdata BEWERTET - > (' Andrew ', ' 
QWERTY ', 20, NULL), - > (' Henry ', ' letmein ', 34, NULL), - > (' 
Sandra ', ' dra33 ', 19, NULL), - > (' John ', ' j12d ', 23, NULL), - 
> (' Jenny ', ' jen123 ', 34, NULL);

Wenn wir alle Informationen von der playerdata Tabelle vorwählen, die jetzt das folgende verwendet, befehlen Sie:

mysql > WÄHLEN * vom playerdata vor

Nun da wir etwas Beispieldaten haben, lassen Sie uns versuchen, etwas Relationen zwischen den Spielern in der Datenbank zu verursachen. Fügen Sie zuerst dem relatefriends Verbindung Tabelle die Tatsache hinzu, daß Henry Freunde mit Sandra ist. Ist hier die Aussage, die erfordert wird, um dieses dem Verbindung Tabelle hinzuzufügen:

mysql > EINSATZ IN relatefriends WERTE - > (' Henry ', ' 
Sandra ');

Lassen Sie uns jetzt mehr Beispieldaten in die relatefriends und in die relateenemies Verbindung Tabellen hinzufügen und sehen, wie wir die Daten manipulieren können. Die zwei Aussagen, die erfordert werden, um in den Beispieldaten hinzuzufügen, sind- unten:

Anmerkung 

Um Sein gleichzeitig zu verhindern ein Freund und ein Feind, konnte eine Relation Tabelle benutzt werden. Addieren Sie einfach eine "feindliche" Markierungsfahne auffangen, und wenn es eingestellt wird, bedeutet es, daß sie Feinde sind; andernfalls sind sie Freunde.

mysql > EINSATZ IN relatefriends BEWERTET - > (' Andrew ',
' Henry '), - > (' Andrew ', ' John '), - > (' Andrew ', ' Jenny '), -
> (' Sandra ', ' Jenny ');

Und auch:

mysql > EINSATZ IN relateenemies BEWERTET - > (' Andrew ',
' Sandra '), - > (' Henry ', ' Jenny '), - > (' Henry ', ' John ');  

Nun da wir alle unsere Beispieldaten haben, lassen Sie uns sehen, wenn wir herausfinden können, wem Andrew Freunde ist mit, indem er die folgende Aussage verwendet:

mysql > AUSERWÄHLTER Freund von den relatefriends WO 
Spieler = ' Andrew ';

Wenn wir diese Aussage durchführen, die Datensichtgeräte eine Liste aller Spieler, daß Andrew Freunde mit ist.

Wieder können wir dasselbe mit der relateenemies Verbindung Tabelle genau tun. Z.B. könnten wir alle Feinde des Henrys mit der folgenden Aussage herausfinden:

mysql > AUSERWÄHLTER Feind von den relateenemies WO 
Spieler = ' Henry '

Mit diesen Daten wenn wir dann mehr Informationen über Feind des Henrys herausfinden wollten, der das username von Jenny hat, würden wir die folgende Aussage verwenden:

mysql > * vom playerdata IN DEM username = ' Jenny ' 
VORWÄHLEN;
dieses ist ein Artikel, der von George Ionescu hinzugefügt wird


Verzicht: Unsere Web site ist nicht zu der Information verantwortlich, die durch diesen Artikel enthalten wird. Dieser Artikel reflektiert keineswegs die Ansichten, die Meinungen, die Gedanken oder den Glauben des Artikelverzeichnisstabes.

Übersetzung Nachricht: Der Artikel "Verwandtschafts-SQL Datenbanken" wurde mit einem automatisierten Übersetzungsdienst übersetzt. Wir entschuldigen herzlichst uns für alle mögliche Übersetzung Störungen, die auftraten. Danke für das Verstehen.


  Online: 1722 users browsing the articles directory © 2005-2010 E-articles.info All Rights Reserved.  
The articles and tutorials in the directory are property of their respective owners and authors.