ďťż
 
projekt - czy zbyt znormalizowany? ďťż
 
projekt - czy zbyt znormalizowany?
Zobacz wiadomości
 
Cytat
A gdyby tak się wedrzeć na umysłów górę, / Gdyby stanąć na ludzkich myśli piramidzie, / I przebić czołem przesądów chmurę, / I być najwyższą myślą wcieloną. . . Juliusz Słowacki, Kordian
Indeks BCB i MySQL subiekt gt fototapeta
 
  Witamy

projekt - czy zbyt znormalizowany?



aaawro - 23-08-2007 00:02
projekt - czy zbyt znormalizowany?
  Witam,

Otóż sprawa ma się tak. Pisane są recenzje przez recenzentów. Muszę zbudować
bazę tych opinii. Ta recenzja ma tytuł, treść, może być zatwierdzona lub
odrzucona przez edytora. Jest jeszcze trochę takich elementów - razem może z
15. (btw: elementy SQL piszę w notacji MSSQL)

Podstawowa tabela to

Tabela RECENZJE:
id_recenzji, data dodania recenzji, autor recenzji, tytuł, treść.

Reszta - typu na przykład wartości boolean - zatwierdzony/nie zatwierdzony
jest w osobnej tabeli. Tak:

Tabela POTWIERDZENIA
id_potwierdzenia, id_recenzji, zatwierdzone(bit) NULL

Są też pola tekstowe które mogą ale nie muszą być wypełnione - i często nie
są. Jest ich z 5. Dla każdego jest osobna tabela.

id_polatekstowego1, id_recenzji, tekst_recenzji.

id_polatekstowego2, id_recenzji, tekst_recenzji.
..one maja rożne znaczenia dlatego są w osobnych tabelach.

Słyszałem że, że...., no..że tak można, ...można to zrobić ale, hmm..no ale
nie..jestem..pewny. Dobre to jest?

Jakoś nie chce doprowadzić do sytuacji w której podstawowa relacja RECENZJE
była by obarczona tak duża ilością atrybutów wypełnioną dużą ilościa NULLi.

Proszę o poradę w tej sprawię, z góry dziękuję.
Miłosz

--
Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/





AreKc - 23-08-2007 00:02

  aaawro pisze:

> Reszta - typu na przykład wartości boolean - zatwierdzony/nie zatwierdzony
> jest w osobnej tabeli.

Mnożysz byty ponad potrzebę ;-)

>
> Jakoś nie chce doprowadzić do sytuacji w której podstawowa relacja RECENZJE
> była by obarczona tak duża ilością atrybutów wypełnioną dużą ilościa NULLi.
>

Niepotrzebnie uprzedzasz się do NULLi. Zasadniczo jest tak: relacja 1 do
1 - jedna tabela, 1 do wielu - dwie tabele, wiele do wielu - trzy tabele.

Jeśli chcesz mieć wycinki tabeli bez NULLi, zrób widoki ;-)




Thread - 23-08-2007 00:02

  AreKc pisze:
> aaawro pisze:
>
>> Reszta - typu na przykład wartości boolean - zatwierdzony/nie
>> zatwierdzony
>> jest w osobnej tabeli.
>
> Mnożysz byty ponad potrzebę ;-)

Dokładnie!

>
>>
>> Jakoś nie chce doprowadzić do sytuacji w której podstawowa relacja
>> RECENZJE
>> była by obarczona tak duża ilością atrybutów wypełnioną dużą ilościa
>> NULLi.
>>
>
> Niepotrzebnie uprzedzasz się do NULLi. Zasadniczo jest tak: relacja 1 do
> 1 - jedna tabela, 1 do wielu - dwie tabele, wiele do wielu - trzy tabele.
>
> Jeśli chcesz mieć wycinki tabeli bez NULLi, zrób widoki ;-)

Myślę, że wystarczy trzy tabele (chyba, że chcesz bardziej
rozbudowywać). Wyklikane i stworzone w 3 min w PostgreSQLu:

CREATE TABLE recenzje
(
id_recenzji serial NOT NULL,
data_dodania date NOT NULL,
tytul varchar(50) NOT NULL,
tresc text NOT NULL,
zatrwierdzenie bool,
tresc_recenzji text,
autor int4 NOT NULL,
recenzent int4 NOT NULL,
CONSTRAINT recenzje_pkey PRIMARY KEY (id_recenzji),
CONSTRAINT recenzje_autor_fkey FOREIGN KEY (autor)
REFERENCES autor (id_autora) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION,
CONSTRAINT recenzje_recenzent_fkey FOREIGN KEY (recenzent)
REFERENCES recenzent (id_recenzenta) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION
)

CREATE TABLE autor
(
id_autora serial NOT NULL ,
imie varchar(25) NOT NULL,
nazwisko varchar(30) NOT NULL,
adres varchar(200),
CONSTRAINT autorzy_pkey PRIMARY KEY (id_autora)
)

CREATE TABLE recenzent
(
id_recenzenta serial NOT NULL DEFAULT,
imie varchar(25) NOT NULL,
nazwisko varchar(30) NOT NULL,
stopien_naukowy varchar(30), // można dodać np. oddzielną tabelę
słownikową ze stopniami, np.: doktor, profesor, itp.
CONSTRAINT recenzjent_pkey PRIMARY KEY (id_recenzjenta)
)

To tylko propozycja...

Pozdrawiam,
Thread
--
..:: Thread
..:: Andrzej Kłopotowski
..:: thread{at}o2{bez_tego}{dot}pl
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • effulla.pev.pl
  • comp
    Lublin - praca dla grafika w projektach e-learning & m-learning Re: Jaka firma w kraju wykonuje projektuje i wykonuje fonty? =?iso-8859-2?q?Projektu_/_layoutu_strony_tytu=B3owej_portalu_spo=B3eczno=B6 ci_internetowej?= =?iso-8859-2?Q?=5BORACLE=5D_-_projekcja_kolumn_okre=B6lonego_typu?= =?iso-8859-2?q?PRACA_du=BFy_projekt_dla_2-3_os=F3b?= Poszukiwany: Administrator/projektant bazy danych postgreSQL/Warszawa Projekt =?ISO-8859-2?Q?Ok=B3adki_na_CD_-_cena=3F?= =?iso-8859-2?q?Zlec=EA_projekt_wizyt=F3wki.?= =?ISO-8859-2?Q?pro=B6ba_o_ocen=EA_projektu?= Re: Projekty JSP, PHP, Java, SQL, C i C++ na zaliczenie!!
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • ponland.htw.pl
  • Cytat

    Decede mihi sole - nie zasłaniaj mi słonca.
    Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści
    Hoc fac - tak czyń.
    A tergo - od tyłu; z tyłu.
    I czarne włosy posiwieją. Safona

    Valid HTML 4.01 Transitional

    Free website template provided by freeweblooks.com