![]() |
![]() |
![]()
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. |
|
|
![]() |
![]()
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 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 6.10.2025 - 08:44 |