Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Problem w projektowaniu bazy
quality
post
Post #1





Grupa: Zarejestrowani
Postów: 172
Pomógł: 9
Dołączył: 13.02.2006
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Witam
Napotkalem 2 problemy projektując bazę danych:

1. Mam 2 moduly - artykuly i galerie. Chcialbym zeby i galerie i artykuly mogly byc komentowane. I tutaj pytanie. Czy zrobic oddzielna tabele komentarzy dla galerii i artykulow, czy zrobic jedna tabele komentarze i dodatkowo 2 tabele "galerie -> wiele do wielu -> komentarze" i "artykuly -> wiele do wielu -> komentarze" ?

2. Drugi problem jest podobny. Mianowicie chodzi o to ze galerie, artykuly, programy itd posiadaja typy. I tutaj tez czy zrobic osobne tabele np: "typ_artykulow" itp czy zrobic jedna tabele
" typy" i dodatkowa "rodzaj_typow" (w ktorych znajda sie informacje o modulach do ktorych beda te typy nalezec)

Ps. Mam nadzieje ze nie zamotalem zabardzo. jak cos to przesle screeny z zamodelowana baza.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
ddiceman
post
Post #2





Grupa: Zarejestrowani
Postów: 326
Pomógł: 121
Dołączył: 23.07.2008
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Dalej nie rozumiem, czemu 'wiele do wielu'? Czy zakladasz, ze ten sam komentarz moze byc i do artykulu i do galerii? Czyli 'wow, fajna galeria' jednoczesnie przypisany i do galerii i do artykulu?

Te 2 schematy nie prezentuja tej samej funkcjonalnosci - pierwszy pozwala na to, co opisalem powyzej. Drugi zapewnia, to, czego moznaby sie spodziewac:
- do jednej galerii (artykulu) moze byc wiele komentarzy
- komentarz jest przypisany do dokladnie jednego artykulu albo zdjecia

Wiec, dla jasnosci, jezeli zalezy Ci na FK, to zrobilbym tabele COMMENTS, z polami
Kod
author,
title,
content,
date,
ip,
active,
author_id,

gallery_id_FK, /* klucz obcy wskazujacy, do ktorej galerii nalezy komentarz, null jesli do zadnej */
article_id_FK, /* klucz obcy wskazujacy, do ktorego artykulu nalezy komentarz, null jesli do zadnej */


Wg tej konstrukcji zawsze jedno z kluczy obcych musi byc NULLem a drugie nie, czyli przydalby sie wtedy trigger:

Kod
CHECK (
    (gallery_id_FK IS NULL AND article_id_FK IS NOT NULL) OR
    (gallery_id_FK IS NOT NULL AND article_id_FK IS NULL)
)


No ale na nieszczescie MySQL nie obsluguje takowych. Chyba, ze praca ma charakter dydaktyczny (a takie mam wrazenie)

Ten post edytował ddiceman 21.11.2008, 13:09:08
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 6.10.2025 - 08:44