PMG1719/DB Beleg/Max

Aus ProgrammingWiki

Wiki-Quelltext dieser Seite.

<language>SQL</language>
== Themenwahl ==
In meinem Datenbankbeleg möchte ich die Umsetzung eines Rollenspiel-Videospieles realisieren.
Dieses Thema wählte ich, weil ich ???

== Modellierung der Datenbank ==

Entity Relationship Model (ERM)
[[Bild:Maxschloool_ERM_Screen.JPG]]
-

Konkretes Relationship Model (RM)
[[Bild:Maxschloool_RM_Screen.JPG]]

== Erstellung der Tabellen ==
<code id="5c41785ade45a">
DROP TABLE IF EXISTS SPIELER;
CREATE TABLE SPIELER(
  Player_ID int AUTO_INCREMENT,
  Username varchar(20),
  Level int,
  Erfahrung int,
  Lebenspunkte int,
  Coins int,
  Clan_ID int,
  Perk_ID int,
  PRIMARY KEY (Player_ID)
); 

DROP TABLE IF EXISTS CLAN;
CREATE TABLE CLAN(
  Clan_ID int AUTO_INCREMENT,
  Name varchar(20),
  Kapazitaet int,
  Levelgrenze int,
  Anfuehrer_ID int,
  PRIMARY KEY (Clan_ID)
); 


DROP TABLE IF EXISTS MONSTER;
CREATE TABLE MONSTER(
  Monster_ID int AUTO_INCREMENT,
  Name varchar(20),
  Erfahrung int,
  PRIMARY KEY (Monster_ID)
); 

DROP TABLE IF EXISTS PERK;
CREATE TABLE PERK(
  Perk_ID int AUTO_INCREMENT,
  Name varchar(20),
  Beschreibung varchar(128),
  Effekt_ID int,
  PRIMARY KEY (Perk_ID)
);

DROP TABLE IF EXISTS ITEM;
CREATE TABLE ITEM(
  Item_ID int AUTO_INCREMENT,
  Name varchar(20),
  Beschreibung varchar(128),
  Effekt_ID int,
  PRIMARY KEY (Item_ID)
); 

DROP TABLE IF EXISTS EFFEKT;
CREATE TABLE EFFEKT(
  Effekt_ID int AUTO_INCREMENT,
  Name varchar(20),
  Beschreibung varchar(128),
  PRIMARY KEY (Effekt_ID)
); 

DROP TABLE IF EXISTS besitzt;
CREATE TABLE besitzt(
  Player_ID int,
  Item_ID int
);

</code>

== Befüllen der Datensätze ==
<code id="5c417a2f3b656">
INSERT INTO SPIELER VALUES(1, 'Schloool', 100, 250, 10, 10000, 1, 2);
INSERT INTO SPIELER VALUES(2, 'ReitzOnTour', 23, 140, 10, 7346, 1, 1);
INSERT INTO SPIELER VALUES(3, 'Helbrecher2001', 12, 0, 10, 50, NULL, NULL);
INSERT INTO SPIELER VALUES(4, 'BaytuzLP', 352, 254, 10, 152, 2, 1);
INSERT INTO SPIELER VALUES(5, 'AlbanerAlban', 13, 12, 10, 200, 3, 1);
INSERT INTO SPIELER VALUES(6, 'KokosPalme', 53, 234, 10, 1636, 3, 3);
INSERT INTO SPIELER VALUES(7, 'KillerSchulsprecher', 12, 250, 10, 10000, NULL, 1);
INSERT INTO SPIELER VALUES(8, 'Teichrose', 454, 250, 10, 16354524, 2, 4);
INSERT INTO SPIELER VALUES(9, 'FeuerFeuerFEEEEUER', 23, 52, 10, 434, 1, 1);
INSERT INTO SPIELER VALUES(10, 'JeckeJeschke', 47, 245, 10, 3433, 1, 3);
INSERT INTO SPIELER VALUES(11, 'NiedererSchuster', 32, 250, 10, 3672, 3, 2);
INSERT INTO SPIELER VALUES(12, 'Bobicar', 1, 0, 10, 0, NULL, NULL);
INSERT INTO SPIELER VALUES(13, 'Metal4Life', 100, 24, 10, 10000, 2, NULL);
INSERT INTO SPIELER VALUES(14, 'MakeGodsWordHappen', 140, 56, 10, 13060, 3, 4);

INSERT INTO CLAN VALUES(1, 'Schlossergilde', 10, 75, 1);
INSERT INTO CLAN VALUES(2, 'Hardcorezockerbande', 10, 75, 1);
INSERT INTO CLAN VALUES(3, 'Die Heidenverfolger', 10, 20, 14);

INSERT INTO MONSTER VALUES(1, 'Kanalratte', 10);
INSERT INTO MONSTER VALUES(2, 'Giftmettigel', 20);
INSERT INTO MONSTER VALUES(3, 'Gurkenfressender Eber', 50);
INSERT INTO MONSTER VALUES(4, 'Schweinebärmann', 100);
INSERT INTO MONSTER VALUES(5, 'Nacktmull mit Pollunder', 100);

INSERT INTO PERK VALUES(1, 'Schnelläufer', 'Lauf schneller als Usain Bolt!', 1);
INSERT INTO PERK VALUES(2, 'Hochspringer', 'Spring höher als ein afrikanischer Springfloh!', 2);
INSERT INTO PERK VALUES(3, 'Angreifer', 'Füge mehr Schaden als jemals zuvor zu!', 3);
INSERT INTO PERK VALUES(4, 'Verteidiger', 'Erhöhe deine Verteidigung signifikant!', 4);

INSERT INTO ITEM VALUES(1, 'Heiltrank', 'Heilt 5 Lebenspunkte', 5);
INSERT INTO ITEM VALUES(2, 'Laufschuhe', 'Deine Beine laufen wie von alleine', 1);
INSERT INTO ITEM VALUES(3, 'Fettes Stahlschild', 'Wehrt Angriffe besser ab', 4);
INSERT INTO ITEM VALUES(4, 'Schwert des Unterganges', 'zerstört jeden kläglichen Gegner', 3);
INSERT INTO ITEM VALUES(5, 'Flügel des Icarus', 'Du lernst das Fliegen', 6);

INSERT INTO EFFEKT VALUES(1, 'Geschwindigkeit', 'Erhöht Laufgeschwindigkeit');
INSERT INTO EFFEKT VALUES(2, 'Sprung', 'Erhöht Sprunghöhe');
INSERT INTO EFFEKT VALUES(3, 'Angriff', 'Erhöht Angriff');
INSERT INTO EFFEKT VALUES(4, 'Verteidigung', 'Erhöht Verteidigung');
INSERT INTO EFFEKT VALUES(5, 'Heilung', 'Erhöht Lebenspunkte');
INSERT INTO EFFEKT VALUES(6, 'Flug', 'Erlernt das Fliegen');

INSERT INTO besitzt VALUES(1, 2);
INSERT INTO besitzt VALUES(1, 3);
INSERT INTO besitzt VALUES(2, 5);
INSERT INTO besitzt VALUES(4, 1);
INSERT INTO besitzt VALUES(4, 2);
INSERT INTO besitzt VALUES(4, 4);
INSERT INTO besitzt VALUES(7, 3);
INSERT INTO besitzt VALUES(9, 2);
INSERT INTO besitzt VALUES(9, 3);
INSERT INTO besitzt VALUES(11, 2);
INSERT INTO besitzt VALUES(11, 5);
INSERT INTO besitzt VALUES(13, 1);
INSERT INTO besitzt VALUES(14, 2);
INSERT INTO besitzt VALUES(14, 4);
INSERT INTO besitzt VALUES(14, 6);
</code>

== Abfragen ==
Anzeigen aller angemeldeten Spieler
<run id="5c4176f7cb145">SELECT * FROM SPIELER;</run>

Anzeigen aller Items, die der Spieler mit der ID 14 besitzt
<run id="5c4188a7afb0a">
SELECT ITEM.Name FROM SPIELER, ITEM, besitzt 
WHERE SPIELER.Player_ID = 1 AND besitzt.Player_ID = 1  </run>

== Changelog ==

'''11.01.19'''
Konzeptidee, Skizzierung der ERM und RM in Dia, Anlegung der Tabellen im Wiki
'''18.01.19''' 
Einfügen aller Grafiken, Einfüllen der Datensätze, Anlegung erster Abfragen und der Themenwahl, sowie nervenaufreibendes Fixen auftretender Fehler