# /* # * shopdb_create.sql # * # * ZHW Zuercher Hochschule Winterthur # * PHP-Shop Projektarbeit PA Fei01/2 # * Autoren: Jose Fontanil & Reto Glanzmann # * # * 22. August 2001, Version 1.03e, basierend auf ER-Diagramm v.1.00 # * # * Initialisiert die Shop-Datenbank (getestet fuer MySQL) # * # * einlesen z.B. mit mysql -u root -p < ./shopdb_create.sql # * (wobei mysql im Pfad sein muss) # * # * ------------------------------------------------------------------------------ # */ # /* # * Zuerst werden die beiden USER shopadmin und shopuser erzeugt # * Um neue User in MySQL anzulegen bedarf es MySQL-root-Rechte! # * Der shopuser darf nicht allgemein in der shopdb (Shop-Datenbank) # * loeschen, deshalb erhaelt er nur das Loeschrecht in den # * Tabellen bestellung und artikel_bestellung. # * Achtung: Hier die Passwoerter aendern! # */ USE mysql INSERT INTO user (Host, User, Password) VALUES("localhost","shopadmin",PASSWORD('machshop')); INSERT INTO user (Host, User, Password) VALUES("localhost","shopuser",PASSWORD('gibshop')); INSERT INTO db (Host, DB, User, Select_priv, Insert_priv, Update_priv, Delete_priv, Alter_priv) VALUES("localhost","shopdb","shopuser","Y","Y","Y","N","Y"); INSERT INTO db (Host, DB, User, Select_priv, Insert_priv, Update_priv, Delete_priv, Alter_priv) VALUES("localhost","shopdb","shopadmin","Y","Y","Y","Y","Y"); INSERT INTO tables_priv (Host, Db, User, Table_name, Grantor, Table_priv, Column_priv) VALUES("localhost", "shopdb", "shopuser", "artikel_bestellung", "root", "Delete", "Select"); INSERT INTO tables_priv (Host, Db, User, Table_name, Grantor, Table_priv, Column_priv) VALUES("localhost", "shopdb", "shopuser", "bestellung", "root", "Delete", "Select"); # /* # * ------------------------------------------------------------------------------ # * # * Nun wird die Shop-Datenbank erzeugt --> shopdb # * Es werden folgende Tabellen erzeugt: # * artikel, artikel_optionen, artikel_variationen, kategorien, # * bestellung, artikel_bestellung, artikel_kategorien, # * hilfe, shop_settings, versandkostenpreise, css_file # */ # /* # * ------------------------------------------------------------------------------ # * # * Anm. Artikel_Nr: Die Artikel_Nr ist hier NICHT per UNIQUE INDEX vor Duplikaten # * geschuetzt. Dies aus der Entscheidung heraus, dass wir hier die Artikel_Nr. gleich- # * zeitig auch als Hersteller-Bestell-Nr benutzen kann (Dies ist oft der Fall bei # * kleineren Shops, die auf diese Weise ihre Bestellnummern verwalten. # * # */ CREATE DATABASE shopdb; USE shopdb; CREATE TABLE artikel ( Artikel_ID INT NOT NULL DEFAULT 0 AUTO_INCREMENT, Artikel_Nr CHAR(32) NOT NULL, Name CHAR(32) NOT NULL, Beschreibung VARCHAR(127) NOT NULL, Preis DOUBLE NOT NULL DEFAULT 0.0, Aktionspreis DOUBLE NOT NULL DEFAULT 0.0, Gewicht DOUBLE NOT NULL DEFAULT 0.0, Link VARCHAR(64), Bild_gross MEDIUMBLOB, #/* Achtung: Bei anderer DB, Typ ev. = BLOB */ Bild_klein BLOB, Bildtyp VARCHAR(15), Bild_last_modified TIMESTAMP(14), letzteAenderung DATE, PRIMARY KEY (Artikel_ID), UNIQUE UC_Artikel_ID (Artikel_ID) ); CREATE TABLE kategorien ( Kategorie_ID INT NOT NULL DEFAULT 0 AUTO_INCREMENT, Positions_Nr INT NOT NULL DEFAULT 0, Name CHAR(32) NOT NULL, Beschreibung VARCHAR(127) NOT NULL, Bild_gross MEDIUMBLOB, #/* Achtung: Bei anderer DB, Typ ev. = BLOB */ Bild_klein BLOB, Bildtyp VARCHAR(15), Bild_last_modified TIMESTAMP(14), PRIMARY KEY (Kategorie_ID), UNIQUE UC_Kategorie_ID (Kategorie_ID), UNIQUE UC_Positions_Nr (Positions_Nr), INDEX IDX_kategorien_1 (Name) ); CREATE TABLE bestellung ( Bestellungs_ID INT NOT NULL DEFAULT 0 AUTO_INCREMENT, Session_ID VARCHAR(32) NOT NULL DEFAULT 0, expired BIGINT NOT NULL DEFAULT 0, # /* In andernen DBs ev. anderer Typ (10 Stellen) */ # /* Unsere getesteten Session_IDs waren immer CHAR(32)... aber man weiss ja nie */ Datum Date, Endpreis DOUBLE NOT NULL DEFAULT 0.0, Firma CHAR(40) NOT NULL, Anrede CHAR(24) NOT NULL, Abteilung CHAR(40) NOT NULL, Vorname CHAR(32) NOT NULL, Name CHAR(32) NOT NULL, Adresse1 CHAR(64) NOT NULL, Adresse2 CHAR(64) NOT NULL, Telefon CHAR(16) NOT NULL, Email CHAR(128) NOT NULL, PLZ INT NOT NULL, Ort CHAR(64) NOT NULL, Land CHAR(40) NOT NULL, Anmerkung CHAR(255), Bezahlungsart CHAR(32) NOT NULL, Bestellung_abgeschlossen enum('N','Y') NOT NULL DEFAULT 'N', PRIMARY KEY (Bestellungs_ID), UNIQUE UC_Bestellungs_ID (Bestellungs_ID) # /* prof. entfernt UNIQUE UC_Session_ID (Session_ID) */ ); CREATE TABLE artikel_kategorie ( a_k_ID INT NOT NULL DEFAULT 0 AUTO_INCREMENT, FK_Artikel_ID INT NOT NULL, FK_Kategorie_ID INT NOT NULL, FOREIGN KEY (FK_Artikel_ID) REFERENCES artikel (Artikel_ID), FOREIGN KEY (FK_Kategorie_ID) REFERENCES kategorien (Kategorie_ID), PRIMARY KEY (a_k_ID,FK_Artikel_ID,FK_Kategorie_ID) ); CREATE TABLE artikel_optionen ( Optionen_Nr INT NOT NULL DEFAULT 1, Optionstext CHAR(64), Preisdifferenz DOUBLE NOT NULL DEFAULT 0.0, FK_Artikel_ID INT NOT NULL, FOREIGN KEY (FK_Artikel_ID) REFERENCES artikel (Artikel_ID) ); CREATE TABLE artikel_variationen ( Variations_Nr INT NOT NULL DEFAULT 1, Variationstext CHAR(64), Aufpreis DOUBLE NOT NULL DEFAULT 0.0, FK_Artikel_ID INT NOT NULL, FOREIGN KEY (FK_Artikel_ID) REFERENCES artikel (Artikel_ID) ); CREATE TABLE artikel_bestellung ( a_b_ID INT NOT NULL DEFAULT 0 AUTO_INCREMENT, FK_Artikel_ID INT NOT NULL, FK_Bestellungs_ID INT NOT NULL, Anzahl INT NOT NULL DEFAULT 1, Variation VARCHAR(128) NOT NULL DEFAULT 'Keine Variation gewaehlt', #/* Aufbau einer Variation: Variationstext ţ Aufpreis */ Optionen VARCHAR(128) NOT NULL DEFAULT 'Keine Optionen gewuenscht', #/* Aufbau einer Variation: Optionstext ţ Preisdifferenz ... */ FOREIGN KEY (FK_Artikel_ID) REFERENCES artikel (Artikel_ID), FOREIGN KEY (FK_Bestellungs_ID) REFERENCES bestellung (Bestellungs_ID), PRIMARY KEY (a_b_ID,FK_Artikel_ID,FK_Bestellungs_ID) #/* Anm. Das Trennzeichen ist ALT+0254, dieser Design muss allenfalls # * ueberarbeitet werden! */ ); CREATE TABLE hilfe ( Hilfe_ID CHAR(48) NOT NULL, Hilfetext VARCHAR(255), PRIMARY KEY (Hilfe_ID), UNIQUE UC_Hilfe_ID (Hilfe_ID) ); CREATE TABLE shop_settings ( Setting_Nr INT NOT NULL DEFAULT 0 AUTO_INCREMENT, MwStsatz DOUBLE NOT NULL DEFAULT 7.6, MwStpflichtig enum('N','Y') NOT NULL DEFAULT 'Y', MwStNummer INT NOT NULL DEFAULT 0, Name CHAR(48) NOT NULL DEFAULT 'Shop in PHP', Adresse1 CHAR(48) NOT NULL DEFAULT 'Adresse 1', Adresse2 CHAR(48) NOT NULL DEFAULT 'Adresse 2', PLZOrt CHAR(48) NOT NULL DEFAULT 'PLZ und Ort', Tel1 CHAR(16) NOT NULL DEFAULT 'Telefon Nummer 1', Tel2 CHAR(16) NOT NULL DEFAULT 'Telefon Nummer 2', Email CHAR(128) NOT NULL DEFAULT 'IhrShop@shopserver.com', Admin_pwd CHAR(16) NOT NULL DEFAULT 'machshop', Abrechnung_nach_Preis enum('N','Y') NOT NULL DEFAULT 'N', Abrechnung_nach_Gewicht enum('N','Y') NOT NULL DEFAULT 'N', Abrechnung_nach_Pauschale enum('N','Y') NOT NULL DEFAULT 'Y', Pauschale_kostenfrei_ab DOUBLE NOT NULL DEFAULT 0.0, Mindermengenzuschlag enum('N','Y') NOT NULL DEFAULT 'N', Mindermengenzuschlag_bis_Preis DOUBLE NOT NULL DEFAULT 0.0, Mindermengenzuschlag_Aufpreis DOUBLE NOT NULL DEFAULT 0.0, Rechnung enum('N','Y') NOT NULL DEFAULT 'Y', Nachnahme enum('N','Y') NOT NULL DEFAULT 'Y', Kreditkarten_Postcard enum('N','Y') NOT NULL DEFAULT 'N', Waehrung CHAR(4) NOT NULL DEFAULT 'CHF', ShopVersion CHAR(48) NOT NULL DEFAULT 'Mai 2001, DB Version v.0.999', Gewichts_Masseinheit CHAR(16) NOT NULL DEFAULT 'kg', Thumbnail_Breite INT NOT NULL DEFAULT 100, AGB TEXT, #/* Max. 65535 Bytes gross in MySQL */ max_session_time BIGINT, #/* In anderen DBs ev. ein anderer Typ (10 Stellen) */ PRIMARY KEY (Setting_Nr), UNIQUE UC_Setting_Nr (Setting_Nr) ); CREATE TABLE versandkostenpreise ( Von_Bis_ID INT DEFAULT 0 NOT NULL AUTO_INCREMENT, Von DOUBLE DEFAULT 0.0, Bis DOUBLE DEFAULT 100.0, Betrag DOUBLE DEFAULT 0.0, FK_Setting_Nr INT NOT NULL, FOREIGN KEY (FK_Setting_Nr) REFERENCES shop_settings (Setting_Nr), PRIMARY KEY (Von_Bis_ID), UNIQUE UC_Von_Bis_ID (Von_Bis_ID) ); CREATE TABLE css_file ( Attribut_ID INT NOT NULL DEFAULT 0 AUTO_INCREMENT, Font CHAR(32) NOT NULL DEFAULT 'Helvetica', Backgroundcolor CHAR(5) NULL DEFAULT 'FFF', PRIMARY KEY (Attribut_ID), UNIQUE UC_Attribut_ID (Attribut_ID) ); # /* # * ------------------------------------------------------------ End of File Marke # */
I wywala mi błąd
#1064 - Something is wrong in your syntax obok 'INSERT INTO user (Host, User, Password)
VALUES("localhos' w linii 29
Będę wdzięczny za pomoc.