![]() |
![]() |
![]()
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%) ![]() ![]() |
AD 1.
Nie sadze, ze funkcjonalnosc 'wiele do wielu' jest Ci potrzebna - w koncu komentarz dotyczy jednej galerii, lub jednego artykulu, wiec jest to relacja 'jeden do wielu'. Zastanów się, czy komentarz do galerii ma strukturę taka sama, jak do artykulu. Jezeli tak - wcisnij w jedna tabele i dodaj pole TYP enum('artykul', 'galeria') czy podobne - latwiej bedziesz mogl wyciagac statystyki komentarzy uzytkownikow etc. (choc mozna robic unie, ale po co?) AD 2. Zalezy, czy typow masz skonczona ilosc i niezmienna, czy nie. Jezeli pierwsza mozliwosc - ENUM, albo jakis INT. Jezeli druga - lepiej tabelke. Co prawda teoria normalizacji mowi, bys w kazdej sytuacji rozbijal na 2 tabele, ale przy duzym obciazeniu serwera zmusza sie tak glowice dysku do skakania po bazie, co owocuje problemami. Ni mniej ni wiecej powiem tylko, bys sam zastanowil sie, czy potrzebujesz osobnej tabeli. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 17.10.2025 - 16:32 |