Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL] Prośba o analizę tabeli
Forum PHP.pl > Forum > Przedszkole
redelek
Witam,

Za namową kolegów postanowiłem napisać od nowa swoją aplikację i poprawić w niej błędy.
Jako że nie jestem zawodowcem to każda tabela jest oddzielnie i nie posiada relacji między sobą.
Bardzo zależy mi na tym, żeby każdy użytkownik, miał swoją rodzinę i mógł się przyłączać do innych rodzin.
Osoba nie należąca do jakiejś rodziny nie widzi prezentów tej rodziny, oraz nie może wysyłać do nich komunikatów.

Tak opracowałem tabele
  1. SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
  2. SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
  3. SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL';
  4.  
  5. CREATE SCHEMA IF NOT EXISTS `prezentownik` DEFAULT CHARACTER SET utf8 COLLATE utf8_polish_ci ;
  6. USE `prezentownik`;
  7.  
  8. -- -----------------------------------------------------
  9. -- Table `prezentownik`.`pre_kodrodziny`
  10. -- -----------------------------------------------------
  11. CREATE TABLE IF NOT EXISTS `prezentownik`.`pre_kodrodziny` (
  12. `id_kodrodziny` TINYINT(4) NOT NULL AUTO_INCREMENT ,
  13. `kod_rodziny` INT(11) NOT NULL ,
  14. `nazwa_rodziny` VARCHAR(100) CHARACTER SET 'utf8' COLLATE 'utf8_polish_ci' NOT NULL ,
  15. PRIMARY KEY (`id_kodrodziny`) )
  16. ENGINE = MyISAM
  17. AUTO_INCREMENT = 0
  18. DEFAULT CHARACTER SET = utf8
  19. COLLATE = utf8_polish_ci;
  20.  
  21.  
  22. -- -----------------------------------------------------
  23. -- Table `prezentownik`.`pre_prezenty`
  24. -- -----------------------------------------------------
  25. CREATE TABLE IF NOT EXISTS `prezentownik`.`pre_prezenty` (
  26. `id_prezentu` TINYINT(3) UNSIGNED NOT NULL AUTO_INCREMENT ,
  27. `id_uzytkownika` TINYINT(3) NULL DEFAULT '0' ,
  28. `id_rezerwujacego` TINYINT(3) NULL DEFAULT '0' ,
  29. `kod_rodziny` VARCHAR(255) CHARACTER SET 'utf8' COLLATE 'utf8_polish_ci' NULL DEFAULT NULL ,
  30. `skr_prezentu` VARCHAR(255) CHARACTER SET 'utf8' COLLATE 'utf8_polish_ci' NULL DEFAULT NULL ,
  31. `koszt` INT(10) UNSIGNED NULL DEFAULT NULL ,
  32. `szczegoly` TEXT CHARACTER SET 'utf8' COLLATE 'utf8_polish_ci' NULL DEFAULT NULL ,
  33. `link` VARCHAR(255) CHARACTER SET 'utf8' COLLATE 'utf8_polish_ci' NULL DEFAULT NULL ,
  34. `mini_fotka` VARCHAR(255) CHARACTER SET 'utf8' COLLATE 'utf8_polish_ci' NULL DEFAULT 'foto_dir/noimage.png' ,
  35. `rezerwacja` VARCHAR(1) CHARACTER SET 'utf8' COLLATE 'utf8_polish_ci' NULL DEFAULT NULL ,
  36. `realizacja` VARCHAR(1) CHARACTER SET 'utf8' COLLATE 'utf8_polish_ci' NULL DEFAULT NULL ,
  37. `typ_prezentu` VARCHAR(25) CHARACTER SET 'utf8' COLLATE 'utf8_polish_ci' NULL DEFAULT 'prezent' ,
  38. `dt_dodania` DATE NULL DEFAULT NULL ,
  39. `dt_realizacji` DATE NULL DEFAULT '0000-00-00' ,
  40. PRIMARY KEY (`id_prezentu`) ,
  41. UNIQUE INDEX `id_prezentu` (`id_prezentu` ASC) )
  42. ENGINE = MyISAM
  43. AUTO_INCREMENT = 0
  44. DEFAULT CHARACTER SET = utf8
  45. COLLATE = utf8_polish_ci;
  46.  
  47.  
  48. -- -----------------------------------------------------
  49. -- Table `prezentownik`.`pre_uzytkownicy`
  50. -- -----------------------------------------------------
  51. CREATE TABLE IF NOT EXISTS `prezentownik`.`pre_uzytkownicy` (
  52. `id_uzytkownika` TINYINT(3) UNSIGNED NOT NULL AUTO_INCREMENT ,
  53. `imie` VARCHAR(20) CHARACTER SET 'utf8' COLLATE 'utf8_polish_ci' NULL DEFAULT NULL ,
  54. `nazwisko` VARCHAR(20) CHARACTER SET 'utf8' COLLATE 'utf8_polish_ci' NULL DEFAULT NULL ,
  55. `email` VARCHAR(50) CHARACTER SET 'utf8' COLLATE 'utf8_polish_ci' NULL DEFAULT NULL ,
  56. `uzytkownik` VARCHAR(32) CHARACTER SET 'utf8' COLLATE 'utf8_polish_ci' NULL DEFAULT NULL ,
  57. `haslo` VARCHAR(32) CHARACTER SET 'utf8' COLLATE 'utf8_polish_ci' NULL DEFAULT NULL ,
  58. `dt_rejestracji` DATETIME NULL DEFAULT NULL ,
  59. `dt_logowania` DATETIME NULL DEFAULT NULL ,
  60. `ilosc_logowan` INT(1) NULL DEFAULT '0' ,
  61. `blokada` VARCHAR(1) CHARACTER SET 'utf8' COLLATE 'utf8_polish_ci' NULL DEFAULT NULL ,
  62. `uprawnienia` VARCHAR(1) CHARACTER SET 'utf8' COLLATE 'utf8_polish_ci' NULL DEFAULT NULL ,
  63. `kod_rodziny` VARCHAR(255) CHARACTER SET 'utf8' COLLATE 'utf8_polish_ci' NULL DEFAULT NULL ,
  64. PRIMARY KEY (`id_uzytkownika`) )
  65. ENGINE = MyISAM
  66. AUTO_INCREMENT = 0
  67. DEFAULT CHARACTER SET = utf8
  68. COLLATE = utf8_polish_ci;
  69.  
  70.  
  71. -- -----------------------------------------------------
  72. -- Table `prezentownik`.`pre_wiadomosci`
  73. -- -----------------------------------------------------
  74. CREATE TABLE IF NOT EXISTS `prezentownik`.`pre_wiadomosci` (
  75. `id_wiadomosci` INT NOT NULL AUTO_INCREMENT ,
  76. `id_uzytkownika` INT(11) NULL ,
  77. `do_kogo` INT(11) NULL ,
  78. `temat` VARCHAR(100) NULL ,
  79. `tresc` TEXT NULL ,
  80. `status` INT(1) NULL ,
  81. `priorytet` INT(1) NULL ,
  82. `dt_dodania` DATE NULL ,
  83. `kod_rodziny` VARCHAR(255) NULL ,
  84. PRIMARY KEY (`id_wiadomosci`) )
  85. ENGINE = MyISAM
  86. DEFAULT CHARACTER SET = utf8
  87. COLLATE = utf8_polish_ci;
  88.  
  89.  
  90.  
  91. SET SQL_MODE=@OLD_SQL_MODE;
  92. SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
  93. SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;


Jeśli będą wam potrzebne inne dane lub coś wytłumaczyć , to mogę napisać. Założenia aplikacji , albo już piszę

1. Możliwość, logowania, rejestracji , oraz zmiany hasła
2. Podział rodzinny i możliwość wybierania do której rodziny chce się należeć
3. Użytkownik nie należący do danej rodziny nie może wysyłać komunikatów i nie widzi prezentów z rodzin do których nie należy
4. Użytkownik widząc prezent , może go sobie zarezerwować i zabrać z głównego koszyka do siebie ( prezenty zarezerwowane )
5. Osoba umieszczająca prezent może go wycofać jeśli tylko nie jest zarezerwowany ( jeśli ma rezerwację może wysłać powiadomienie, ale nie wie do kogo i poprosić o zwolnienie swojego prezentu uzasadniając to informacją)
6. Użytkownicy , mogą zwalniać prezenty i umieszczać je w głównym koszu
7. Użytkownicy mogą edytować swoje dane ( imię nazwisko hasło, kod_rodziny)

Co Wy na to, jakaś pierwsza wersja już tego jest, ale jeszcze dużo do dopracowania w niej.

Dzięki za pomoc lub wskazówki
thek
A to nie przewidujesz przynależności do kilku rodzin? Choćby poprzez małżeństwo. Zrób to najlepiej jako relacja wiele do wielu.
Rodzina ma swoje dane, w tym id. Użytkownicy mają swoje dane, w tym id. Tworzysz jeszcze tylko tabelę łączącą z kolumnami: id_rodziny i id_użytkownika. To załatwia sprawę przynależności. Jeśli jednak planujesz jedynie Użytkownik jest członkiem jednej rodziny to wystarczy, że jedno z jego pól wskazuje na id_rodziny i wszystko (tak masz teraz). Całość rozwiązań poza tym w sumie jest w podanym schemacie do zrealizowania. Nie wiem po co masz w prezent realizację. Inna sprawa, że niepotrzebne jest tam pole rezerwacja. Skoro coś nie jest zarezerwowane to prezent ma id_rezerwującego = 0, a gdy ktoś zarezerwuje, zmieni się tam wartość na id tej osoby.

Inna sprawa, że chyba sam nie wiesz po co niektóre dane masz. Taki kod rodziny. Raz jest jako int, innym razem varchar. Link w prezencie niepotrzebny. Zapewne tworzyć go będziesz dynamicznie. Z uprawnieniami usera jako varchar to chyba omyłkowo zamiast int. To samo z blokadą. Ogólnie zastanów jeszcze czy wszystkie pola Ci sa potrzebne i jakie dane w nich przechowujesz. To pomoże w wyborze właściwego typu.
redelek
Dzięki,

Tak z rezerwacją się zgadzam nie widziałem tego, ale faktycznie pole jest zbędne.
Jeśli chodzi o przynależność, to będzie kilku użytkowników w jednej rodzinie, ale każdy będzie miał swoją prywatną do której też będzie należał, czyli tak

rodzina_AP
-> Osoba Ania
-> Osoba Piotrek
-> jest dziecko, ale za małe do tej zabawy
rodzina_NR
- > Osoba Natalia
-> Osoba Rafał
rodzina_SA
-> Osoba Sabina
-> Andrzej
rodzina_KB
-> Krystyna
-> Bogusław
Teraz tak, moją główną rodziną jest rodzina_AP, ale będę nalerzał do rodzina_SA ( teściowei ) i rodzina_NR (szwagrowie ) oraz rodzina_KB ( moi rodzice ). Ale osoby z rodzina_NR nie będą w rodzina_KB i mają nie widzieć ich prezentów.
Czy możesz przybliżyć jak ma wyglądać ta tabela łącząca ?
Link w tabeli prezenty musi być, bo tak użytkownicy umieszczają link do fotografia lub do strony na której można kupić ten prezent. Jest to taka dodatkowa informacja w szczegółach prezentu.

Będę wdzięczny za wyjaśnienie
thek
Z tabelą łączącą to standardowa relacja wiele-do-wielu. Rodziny to tylko określenie tychże, bez wyszczególniania członków. Tak jakby po prostu jej opis. Użytkownicy to po prostu tylko dane użytkownika. Tabela łącząca zaś to właśnie łącznik. Wpisy w niej oznaczają jaki user jest w jakiej rodzinie. W ten sposób łączysz w pary id_usera i id_rodziny. Taka para pozwala łatwo określić uprawnienia. Przykładowo w tej tabeli będziesz mial wpisy, że należysz do swojej rodziny AP, ale także rodziny SA, NR i KB. W tabeli tej więc masz 4 wpisy. Widzisz w nich wszystko. Jednakże jakakolwiek osoba z rodziny KB choćby dopóki nie ma jawnie powiedziane, że należy do innej to nie ma w niej uprawnień. Powoduje to wiele rekordów w tejże tabeli, ale pozwala bardzo dokładnie określić kto gdzie przynależy. Zauważ, że robiąc zapytanie o rodziny usera szukamy wpisów z określonym id_usera. Jeśli szukamy członków określonej rodziny wybieramy wszystkie z określonym id_rodziny. Wystarczy sprawdzać w określonych przypadkach czy w tabeli istnieje rekord o odpowiedniej kombinacji id_usera - id_rodziny by wiedzieć co można a czego nie można komuś wyświetlić smile.gif Przykładowo prezent jest od rodziny AP i wchodzi ktoś z rodziny NR. Bierzemy id gościa i sprawdzamy, czy istnieje rekord łączący jego id z id rodziny AP. Jeśli brak to znaczy, że nie ma tego prezentu widzieć, bo nie jest skoligacony.
redelek
hmm, nadal kiepsko z moją wyobraźnią.
Nie rozumiem jak to ma być.
Rodzin nigdy nie będę miał tylu co użytkowników ? więc nie będzie tyle samo ID_rodzin co ID_uzytkowników
chyba ,że jak dodam użytkownika to w bazie rodzin powstanie taka sama rodzina , ale z innym id czyli

ID_RODZIN | KOD_RODZINY | NAZWA RODZINY
1 | 111213 | rodzina_AP
2 | 111213 | rodzina_AP
3 | 141516 | rodzina_NR
4 | 141516 | rodzina_NR
5 | 171819 | rodzina_SA
6 | 171819 | rodzina_SA

IDUZYTKOWNIKA | nazwa_uzytkownika
1 | piotr
2 | ania
3 | natalia
4 | rafał
5 | sabina
6 | andrzej


TABELA ŁĄCZĄCA

ID_LACZENIA | ID_RODZINY | ID UŻYTKOWNIKA
1 | 1 | 1
2 | 2 | 2
3 | 3 | 3
4 | 4 | 4
5 | 5 | 5
6 | 6 | 6
7 | 3 | 1
8 | 3 | 2

Kurcze jakoś nie widzę tego
thek
To zależy czym dla Ciebie jest rodzina... Nigdy nie osiągniesz takiego stopnia, że rodzin i użytkowników będzie tyle samo bo to bezsensowne. Rodzin jest maksymalnie tyle ile węzłów. Przykład?
Babcia i dziadek od strony ojca, babcia i dziadek od strony matki, Twoi rodzice, Ty, Twoje dziecko i po 2 siostry/bracia Twoich rodziców. Co to daje? 12 użytkowników i teoretycznie 9 rodzin: Dziadkowie matki, dziadkowie ojca, rodzice, Ty, Twoje dziecko i każda z ciotek wujków (czyli 4 rodziny). Do rodziny dziadków matki należą dziadkowie i Twoja matka oraz jej rodzeństwo. Jeśli zechcą mogą oni do tej rodziny dołożyć swoje dzieci i tak dalej. To utworzy rodzinę w sensie genealogicznych. Od strony ojca jest to samo. Zauważ jednak, że Twoi rodzice są na styku tych rodzin. Mogą, ale nie muszą do swoich rodzin małżonka dołożyć. Jednocześnie sami są rodziną z Tobą jako jej członkiem. Osoba zarządzająca rodziną decyduje kto jest jej członkiem i ewentualnie wysyła "zaproszenie do rodziny". Wpisów w tej tabeli łaczącej jest dużo, ale pozwala ona bardzo dokładnie określić przynależność. Przynależność jest jednostkowa. Co to znaczy? Ano to, że przynależność jest ustalana dla każdej osoby z osobna. Jeśli ktoś jest w rodzinie to nie rozciąga to przywilejów na innych członków drugiej jego rodziny. Tyczy tylko jego i nikogo innego. Stąd można przynależeć do wielu rodzin. Rozrysuję Ci teraz rodziny:
Dziadkowie matki - 1 (user 1 i 2)
Dziadkowie ojca - 2 (user 3 i 4)
Rodzice Twoi - 3 (user 5 i 6)
Twoja rodzina - 4 (user 7 i 8)
Twoje dziecko - 5 (user 9)
Bracia i siostry rodziców - 6 (user 10), 7 (user 11), 8 (user 12), 9 (user 13)
Tabela łącząca
1 -> 1, 2, 5(matka), 9(siostra matki), 10 ( druga siostra matki)
2 -> 3, 4, 6(ojciec), 11(brat ojca), 12, (siostra ojca)
3 -> 5, 6, 7
4 -> 7, 8, 9
5 -> 9
6 -> 10
7 -> 11
8 -> 12
9 -> 13
To tylko zależność rodzina = rodzice + dziecko, ale jeśli chcesz, możesz dać do rodziny swoich potomków lub kogoś z bocznej gałęzi. Wtedy dojdzie on jako użytkownik tejże rodziny. Przykładowo dziadkowie mogą zechcieć dodać swoje wnuki co sprawi, że Twoje dziecko (user 9) pojawi się w rodzinach 1 i 2. Mogą też zechcieć dziadkowie ojca Twoją matkę dodać. Dzięki czemu rodzina 2 rozszerzy się o usera 5. Nie zmienia to jednak faktu, że tylko ona jest do niej zaliczana... Jej rodzice i rodzeństwo już nie i nie mają do niczego dostępu w rodzinie 2. Tak można tworzyć całe zależności. Ilość rekordów w tej tabeli jest duża, ale są to malutkie rekordy liczbowe, więc operacje są bardzo szybkie. Zarówno dodawanie jak i usuwanie z niej kogokolwiek. Można się pokusić o jeszcze jedną rzecz... Możesz określić w profilu osoby id rodziców. Może to zamulić mocno bazę (rekurencja), ale pozwoli automatycznie generować drzewa genealogiczne. Jeśli do

EDIT: W najbardziej ogólnym przypadku można uznać, że każdy użytkownik tworzy swoją rodzinę. Ja tworzę rodzinę X i dodaję do niej osoby na podstawie powiązań. Tak naprawdę więc rekord powiązań można określić jako:
id_rodziny(najprawdopodobniej będzie on także Twoim id), id_członka, stopień_pokrewieństwa. Tak więc Twoja rodzina gdyby tak ją określić może zostać uznana jako:
7, 7, NULL -> moja rodzina, ja sam, jestem korzeniem
7, 8, żona -> moja rodzina, id_zony, żona
7, 9, córka -> moja rodzina, id_dziecka, córka
7, 5, matka -> moja rodzina, id_matki, matka
7, 6, ojciec -> moja rodzina, id_ojca, ojciec
To byłby schemat najbardziej ogólny... Zauważ, że Twoja żona miałaby nieco inny schemat:
8, 8, NULL -> rodzina_żony, ona sama, jest jej korzeniem
8, 7, mąż -> rodzina_żony, id_mężą, mąż
8, 9, córka -> rodzina_żony, id_dziecka, córka
Ojca i matki żona nie ma w bazie więc pustka... Zamiast nich może dać...
8, 5, teściowa -> rodzina_żony, id_matki_męża, teściowa
8, 6, teść -> moja rodzina, id_ojca_męża, teść
To już wiele powtarzających się rekordów, ale można tworzyć naprawdę skomplikowane dzięki temu drzewa. Stąd prościej przyjmować wariant pierwszy, gdzie rodziną jest: matka+ojciec+dzieci, a nie każdy użytkownik z osobna. Traci się jednak wtedy możliwość określenia dokładnie powiązań między członkami. Ogranicza się to bowiem do: my, rodzina dziecka, rodzice męża/żony, dziadkowie męża/żony, rodzeństwo męża/żony, gdzie trudno określić, kto na przykład w rodzeństwie małżonka jest jego faktycznym bratem/ siostra. Bo informacja jest rozpatrywana na poziomie węzła rodziny, a nie poszczególnej osobie.
redelek
Czytając to co napisałeś, powstał taki schemat.
Zobacz czy dobrze Cię zrozumiałem.

  1. SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
  2. SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
  3. SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL';
  4.  
  5. CREATE SCHEMA IF NOT EXISTS `pretest` DEFAULT CHARACTER SET utf8 COLLATE utf8_polish_ci ;
  6. USE `pretest`;
  7.  
  8. -- -----------------------------------------------------
  9. -- Table `pretest`.`pre_kodrodziny`
  10. -- -----------------------------------------------------
  11. DROP TABLE IF EXISTS `pretest`.`pre_kodrodziny` ;
  12.  
  13. CREATE TABLE IF NOT EXISTS `pretest`.`pre_kodrodziny` (
  14. `id_kodrodziny` TINYINT(3) UNSIGNED NOT NULL AUTO_INCREMENT ,
  15. `nazwa_rodziny` VARCHAR(100) CHARACTER SET 'utf8' COLLATE 'utf8_polish_ci' NULL ,
  16. `id_uzytkownika` TINYINT(3) NULL ,
  17. PRIMARY KEY (`id_kodrodziny`) )
  18. ENGINE = MyISAM
  19. AUTO_INCREMENT = 0
  20. DEFAULT CHARACTER SET = utf8
  21. COLLATE = utf8_polish_ci;
  22.  
  23.  
  24. -- -----------------------------------------------------
  25. -- Table `pretest`.`pre_prezenty`
  26. -- -----------------------------------------------------
  27. DROP TABLE IF EXISTS `pretest`.`pre_prezenty` ;
  28.  
  29. CREATE TABLE IF NOT EXISTS `pretest`.`pre_prezenty` (
  30. `id_prezentu` TINYINT(3) UNSIGNED NOT NULL AUTO_INCREMENT ,
  31. `id_uzytkownika` TINYINT(3) NULL DEFAULT '0' ,
  32. `id_rezerwujacego` TINYINT(3) NULL DEFAULT '0' ,
  33. `tytul_prezentu` VARCHAR(255) CHARACTER SET 'utf8' COLLATE 'utf8_polish_ci' NULL DEFAULT NULL ,
  34. `koszt_prezentu` INT(10) NULL DEFAULT NULL ,
  35. `szczegoly_prezentu` TEXT CHARACTER SET 'utf8' COLLATE 'utf8_polish_ci' NULL DEFAULT NULL ,
  36. `link_do_strony` VARCHAR(255) CHARACTER SET 'utf8' COLLATE 'utf8_polish_ci' NULL DEFAULT NULL ,
  37. `mini_fotka` VARCHAR(255) CHARACTER SET 'utf8' COLLATE 'utf8_polish_ci' NULL DEFAULT 'foto_dir/noimage.png' ,
  38. `zrealizowany_prezent` VARCHAR(1) CHARACTER SET 'utf8' COLLATE 'utf8_polish_ci' NULL DEFAULT NULL ,
  39. `okazja` VARCHAR(25) CHARACTER SET 'utf8' COLLATE 'utf8_polish_ci' NULL ,
  40. `dt_dodania` DATE NULL DEFAULT NULL ,
  41. `dt_realizacji` DATE NULL DEFAULT NULL ,
  42. PRIMARY KEY (`id_prezentu`) )
  43. ENGINE = MyISAM
  44. AUTO_INCREMENT = 0
  45. DEFAULT CHARACTER SET = utf8
  46. COLLATE = utf8_polish_ci;
  47.  
  48.  
  49. -- -----------------------------------------------------
  50. -- Table `pretest`.`pre_uzytkownicy`
  51. -- -----------------------------------------------------
  52. DROP TABLE IF EXISTS `pretest`.`pre_uzytkownicy` ;
  53.  
  54. CREATE TABLE IF NOT EXISTS `pretest`.`pre_uzytkownicy` (
  55. `id_uzytkownika` TINYINT(3) UNSIGNED NOT NULL AUTO_INCREMENT ,
  56. `imie` VARCHAR(20) CHARACTER SET 'utf8' COLLATE 'utf8_polish_ci' NULL DEFAULT NULL ,
  57. `nazwisko` VARCHAR(20) CHARACTER SET 'utf8' COLLATE 'utf8_polish_ci' NULL DEFAULT NULL ,
  58. `dt_imienin` DATE NULL DEFAULT NULL ,
  59. `dt_urodzin` DATE NULL DEFAULT NULL ,
  60. `email` VARCHAR(50) CHARACTER SET 'utf8' COLLATE 'utf8_polish_ci' NULL DEFAULT NULL ,
  61. `uzytkownik` VARCHAR(32) CHARACTER SET 'utf8' COLLATE 'utf8_polish_ci' NULL DEFAULT NULL ,
  62. `haslo` VARCHAR(32) CHARACTER SET 'utf8' COLLATE 'utf8_polish_ci' NULL DEFAULT NULL ,
  63. `dt_rejestracji` DATETIME NULL DEFAULT NULL ,
  64. `dt_logowania` DATETIME NULL DEFAULT NULL ,
  65. `ilosc_logowan` INT(1) NULL DEFAULT '0' ,
  66. `blokada` VARCHAR(1) CHARACTER SET 'utf8' COLLATE 'utf8_polish_ci' NULL DEFAULT NULL ,
  67. `uprawnienia` VARCHAR(1) CHARACTER SET 'utf8' COLLATE 'utf8_polish_ci' NULL DEFAULT NULL ,
  68. PRIMARY KEY (`id_uzytkownika`) )
  69. ENGINE = MyISAM
  70. AUTO_INCREMENT = 0
  71. DEFAULT CHARACTER SET = utf8
  72. COLLATE = utf8_polish_ci;
  73.  
  74.  
  75. -- -----------------------------------------------------
  76. -- Table `pretest`.`pre_wiadomosci`
  77. -- -----------------------------------------------------
  78. DROP TABLE IF EXISTS `pretest`.`pre_wiadomosci` ;
  79.  
  80. CREATE TABLE IF NOT EXISTS `pretest`.`pre_wiadomosci` (
  81. `id_wiadomosci` INT NOT NULL AUTO_INCREMENT ,
  82. `id_uzytkownika` INT(11) NULL ,
  83. `do_kogo` INT(11) NULL ,
  84. `temat` VARCHAR(100) NULL ,
  85. `tresc` TEXT NULL ,
  86. `status` INT(1) NULL ,
  87. `priorytet` INT(1) NULL ,
  88. `dt_dodania` DATETIME NULL ,
  89. `kod_rodziny` VARCHAR(255) NULL ,
  90. PRIMARY KEY (`id_wiadomosci`) )
  91. ENGINE = MyISAM
  92. DEFAULT CHARACTER SET = utf8
  93. COLLATE = utf8_polish_ci;
  94.  
  95.  
  96. -- -----------------------------------------------------
  97. -- Table `pretest`.`pre_lacz_ur`
  98. -- -----------------------------------------------------
  99. DROP TABLE IF EXISTS `pretest`.`pre_lacz_ur` ;
  100.  
  101. CREATE TABLE IF NOT EXISTS `pretest`.`pre_lacz_ur` (
  102. `pre_kodrodziny_id_kodrodziny` TINYINT(3) NOT NULL ,
  103. `pre_uzytkownicy_id_uzytkownika` TINYINT(3) UNSIGNED NOT NULL ,
  104. INDEX `fk_pre_lacz_ur_pre_kodrodziny` (`pre_kodrodziny_id_kodrodziny` ASC) ,
  105. INDEX `fk_pre_lacz_ur_pre_uzytkownicy1` (`pre_uzytkownicy_id_uzytkownika` ASC) ,
  106. CONSTRAINT `fk_pre_lacz_ur_pre_kodrodziny`
  107. FOREIGN KEY (`pre_kodrodziny_id_kodrodziny` )
  108. REFERENCES `pretest`.`pre_kodrodziny` (`id_kodrodziny` )
  109. ON DELETE NO ACTION
  110. ON UPDATE NO ACTION,
  111. CONSTRAINT `fk_pre_lacz_ur_pre_uzytkownicy1`
  112. FOREIGN KEY (`pre_uzytkownicy_id_uzytkownika` )
  113. REFERENCES `pretest`.`pre_uzytkownicy` (`id_uzytkownika` )
  114. ON DELETE NO ACTION
  115. ON UPDATE NO ACTION)
  116. ENGINE = MyISAM
  117. DEFAULT CHARACTER SET = utf8
  118. COLLATE = utf8_polish_ci;
  119.  
  120.  
  121.  
  122. SET SQL_MODE=@OLD_SQL_MODE;
  123. SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
  124. SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;

To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.