Facebook
From Whipped Pintail, 3 Years ago, written in SQL.
Embed
Download Paste or View Raw
Hits: 81
  1. --BD PROJEKT MODEL LOGICZNY--
  2.  
  3. DROP TABLE uzytkownik;
  4. DROP TABLE uprawnienia_adminow;
  5. DROP TABLE admin;
  6. DROP TABLE ban;
  7. DROP TABLE dotacja;
  8. DROP TABLE rozgrywka;
  9. DROP TABLE tlumaczenie;
  10. DROP TABLE opis;
  11. DROP TABLE gra;
  12. DROP TABLE tryb_gry;
  13. DROP TABLE poziom_uzytkownika;
  14. DROP TABLE znajomosc;
  15. DROP TABLE trofeum;
  16. DROP TABLE trofeum_uzytkownika;
  17. DROP TABLE stat_przeciw_znaj;
  18.  
  19. CREATE TABLE poziom_uzytkownika (
  20.     id_poz_uzyt NUMBER(6) NOT NULL PRIMARY KEY,
  21.     nazwa_poziomu varchar2(20) NOT NULL,
  22.     kolor varchar2(20) NOT NULL,
  23.     min_wiek NUMBER(2) NOT NULL,
  24.     wymag_liczba_rozeg NUMBER(6) NOT NULL,
  25.     wymag_liczba_wygr NUMBER(6) NOT NULL
  26. );
  27.  
  28. CREATE TABLE uzytkownik (
  29.     id_uzytkownika NUMBER(6) PRIMARY KEY,
  30.     login VARCHAR2(10) UNIQUE NOT NULL,
  31.     hash_hasla, --?
  32.     id_poziomu_uzytkownika NUMBER(6) NOT NULL REFERENCES poziom_uzytkownika,
  33.     imie VARCHAR2(20) NOT NULL,
  34.     nazwisko VARCHAR2(20) NOT NULL,
  35.     data_urodzenia DATE NOT NULL,
  36.     data_rejestracji DATE NOT NULL,
  37.     ostatnie_logowanie TIME,
  38.     ostatnie_wylogowanie TIME
  39. );
  40. --trigger data rejestracji wypełniana automatycznie?
  41.  
  42. CREATE TABLE uprawnienia_adminow (
  43.     rang_admina NUMBER(2) PRIMARY KEY,
  44.     zasieg_admina NUMBER(6) NOT NULL REFERENCES poziom_uzytkownika
  45. );
  46.  
  47. CREATE TABLE admin (
  48.     id_admina NUMBER(6) PRIMARY KEY,
  49.     id_uzytkownika NUMBER(6) NOT NULL REFERENCES uzytkownik,
  50.     id_zwierzchnika NUMBER(6) REFERENCES admin,
  51.     ranga_admina NUMBER(2) NOT NULL REFERENCES uprawnienia_adminow
  52. );
  53.  
  54. CREATE TABLE ban (
  55.     id_bana NUMBER(6) PRIMARY KEY,
  56.     id_uzytkownika NUMBER(6) NOT NULL REFERENCES uzytkownik,
  57.     id_admina NUMBER(6) REFERENCES admin,
  58.     data_zbanowania DATE NOT NULL,
  59.     data_wygasniecia DATE NOT NULL
  60. );
  61. --trigger data zbanowania wypełniana automatycznie?
  62.  
  63. CREATE TABLE dotacja (
  64.     id_dotacji NUMBER(6) PRIMARY KEY,
  65.     id_uzytkownika NUMBER(6) NOT NULL REFERENCES uzytkownik,
  66.     kwota NUMBER(7) NOT NULL CHECK (kwota > 0),
  67.     data_wplaty DATE NOT NULL
  68. );
  69. --trigger data wpłaty wypełniana automatycznie?
  70.  
  71. CREATE TABLE tlumaczenie (
  72.     slowo VARCHAR2(20) PRIMARY KEY,
  73.     przetlumaczone VARCHAR2(20) NOT NULL,
  74.     jezyk VARCHAR(10) NOT NULL
  75. );
  76.  
  77. CREATE TABLE opis (
  78.     id_opisu NUMBER(6) NOT NULL PRIMARY KEY,
  79.     opis varchar2(1024) NOT NULL
  80. );
  81.  
  82. CREATE TABLE gra (
  83.     id_gry NUMBER(6) NOT NULL PRIMARY KEY,
  84.     nazwa_gry varchar2(20) NOT NULL,
  85.     id_opisu NUMBER(6) NOT NULL REFERENCES opis
  86. );
  87.  
  88. CREATE TABLE tryb_gry (
  89.     id_trybu NUMBER(6) NOT NULL PRIMARY KEY,
  90.     nazwa_trybu varchar2(20) NOT NULL,
  91.     wymagany_poziom NUMBER(6) NOT NULL REFERENCES poziom_uzytkownika
  92. );
  93.  
  94. CREATE TABLE rozgrywka (
  95.     id_rozgrywki NUMBER(6) PRIMARY KEY,
  96.     id_gry NUMBER(6) NOT NULL REFERENCES gra,
  97.     id_trybu NUMBER(6) NOT NULL REFERENCES tryb_gry,
  98.     id_zwyciezcy NUMBER(6) NOT NULL REFERENCES uzytkownik,
  99.     id_przegranego NUMBER(6) NOT NULL REFERENCES uzytkownik
  100. );
  101.  
  102. CREATE TABLE znajomosc (
  103.     id_uzyt NUMBER(6) NOT NULL REFERENCES uzytkownik,
  104.     id_znaj NUMBER(6) NOT NULL REFERENCES uzytkownik,
  105.     PRIMARY KEY (id_uzyt, id_znaj)
  106. )
  107.  
  108. CREATE TABLE trofeum (
  109.     id_trofeum NUMBER(6) NOT NULL PRIMARY KEY,
  110.     nazwa_trofeum varchar2(20) NOT NULL,
  111.     id_gry NUMBER(6) NOT NULL REFERENCES gra,
  112.     id_trybu NUMBER(6) NOT NULL REFERENCES tryb_gry,
  113.     wym_poziom NUMBER(6) NOT NULL REFERENCES poziomy_uzytkownika,
  114.     wym_liczba_zwyciestw NUMBER(6) NOT NULL,
  115.     wym_proc_zwyciestw NUMBER(0, 2) NOT NULL
  116. );
  117.  
  118. CREATE TABLE trofeum_uzytkownika (
  119.     id_uzytkownika NUMBER(6) NOT NULL REFERENCES uzytkownik,
  120.     id_trofeum NUMBER(6) NOT NULL REFERENCES trofeum
  121.     PRIMARY KEY (id_uzytkownika, id_trofeum)
  122. );
  123.  
  124. CREATE TABLE stat_przeciw_znaj (
  125.     id_znajmomosci NUMBER(6) NOT NULL PRIMARY KEY,
  126.     id_gry NUMBER(6) NOT NULL REFERENCES
  127. );