Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: ocena bazy
Forum PHP.pl > Forum > Bazy danych > MySQL
wrebus
cze, bawie sie w tworzenie strony gazetki i prosze o ocene bazy ktora zaprojektowalem na swoje potrzeby
Kod
CREATE TABLE t_gazeta (
       nr int unsigned not null,
       rok char(100) not null,
       dzien date not null,
       UNIQUE KEY nr (nr) );
CREATE TABLE t_mutacje (
        id int unsigned not null auto_increment,
        mutacja char(10) not null,
        UNIQUE KEY id (id) );
CREATE TABLE t_dodatki (
        id int unsigned not null auto_increment,
        nazwa char(100) not null,
        id_mutacja int,
        UNIQUE KEY id (id),
        FOREIGN KEY (id_mutacja) REFERENCES mutacje(id) ON UPDATE CASCADE ON DELETE RESTRICT );
CREATE TABLE t_dzialy (
        id int unsigned not null,
        nazwa char(50) not null,
        UNIQUE KEY id (id) );
CREATE TABLE t_wiadomosci (
        id int not null auto_increment,
        nadtytul varchar(200),
        tytul varchar(100) not null,
        tresc text not null,
        ramka text not null,
        autor varchar(100),
        zdjecie text,
        priorytet tinyint default 0,
        id_user_dodal int not null,
        id_user_zmienil int not null,
        data_dodal timestamp not null,
        data_zmienil timestamp not null,
        id_mutacja int not null,
        id_dodatek int not null,
        id_dzial int not null,
        UNIQUE KEY id (id),
        FOREIGN KEY (id_user_dodal, id_user_zmienil) REFERENCES users(id, id) ON UPDATE CASCADE ON DELETE RESTRICT,
        FOREIGN KEY (id_mutacja) REFERENCES mutacje(id) ON UPDATE CASCADE ON DELETE RESTRICT,
        FOREIGN KEY (id_dodatek) REFERENCES dodatki(id) ON UPDATE CASCADE ON DELETE RESTRICT,
        FOREIGN KEY (id_dzial) REFERENCES dzialy(id) ON UPDATE CASCADE ON DELETE RESTRICT );
CREATE TABLE t_users (
        id int not null auto_increment,
        nazwa char(50),
        haslo char(100),
        UNIQUE KEY id (id) );


problem jest taki, ze codziennie jest nowe wydanie gazety okreslone nr wydania rokiem i dniem wydania, gazeta jest wydawana w 4 regionach-mutacjach (ew. wiecej) kazda mutacja ma swoj dzial - wiadomosci/sport/opinie/cośtam, sa jeszcze dodatki do gazety (motoryzacja, praca) no i sa wiadomosci ktore maja sie pojawiac albo w okreslonym dziale i mutacji, lub w dodatku i mutacji.
przypuszczam, ze przydaloby sie jakies indexowanie, jako ze codziennie bedzie przybywalo ok. 20 wiadomosci.
prosze o opinie - co zrobic aby baza się sprawdziła i była funkcjonalna.
wojto
Kod
CREATE TABLE t_gazeta (
[...]
       rok char(100) not null,
       dzien date not null,
a nie wystarczy sama data, ktora ma w sobie rok, miesiac i dzien?
i dlaczego rok jest typu char(100)?
poza tym uzywasz b. czesto char, nie wiem czy nie lepsze by bylo varchar, bo u ciebie moga stringi miec rozna dlugosc
oprocz hsla uzytkownika, bo tu zwykle daje sie char(32) - jesli kodujesz md5, wiec nie potrzeba ci char(100)
sproboj nadac indexy na pola wg ktorych bedziesz czesto wyszukiwal
wrebus
dzieki za odpowiedz, a czy mam po zalozeniu tablicy okreslic jakiego jest typu? - myisam, czy inna?
popbart
Widzę że używasz kluczy obcych. W takim wypadku powinieneś użyć innodb.
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.