Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Projekt bazy danych, Optymalizacja
kacperix
post
Post #1





Grupa: Zarejestrowani
Postów: 37
Pomógł: 0
Dołączył: 30.07.2006
Skąd: okolice Elbląga

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


Witam.

Jestem w trakcie projektowania bazy danych. Jednymi z danych jakie będą w niej gromadzone to opinie użytkowników. Każda opinia będzie się składała z treści, oceny ogólnej i ocen cząstkowych. Otóż nie jestem pewien jak dokładnie składować oceny cząstkowe.

Na początku wyszedłem z założenia, że "definicje" ocen cząstkowych będą przetrzymywane w tabeli Parametry. Każda definicja to id oraz nazwa oceny cząstkowej. Z tej też tabeli byłyby one pobierane i wyświetlany byłby dla nich formularz na stronie www.
Po przesłaniu formularza dane miałby być zapisywane w taki sposób, że do tabeli Opinie wędrowała by treść opinii, ocena ogólna i id użytkownika, a oceny cząstkowe zostały by włożone do tabeli OpiniaParametry (na ERD jest mały błąd, drugie pole ID, które nie jest kluczem głównym powinno się nazywać value). Każdy wpis zawierał by id opinii, id parametru (definicji oceny cząstkowej) oraz wartość odpowiedzi użytkownika (liczby całkowite od 1 do 6). Czyli jeśli np. zdefiniowanych zostałoby 10 ocen cząstkowych to dla jednej opinii w tabeli Opinie, istniałoby 10 wpisów w tabeli OpiniaParametry.

Poniżej przykładowy ERD:



Jednak jak przeanalizowałem to jeszcze raz to ten pomysł wydaje mi się nietrafiony.
Otóż, ocen cząstkowych nie będzie więcej jak 10.

Dlatego też moje pytanie brzmi, czy warto w takim razie rozbijać to aż na 3 tabele?? Zamiast tego zrobić to wszystko na jednej tabeli. Poniżej przykładowe ERD.

Go to the top of the page
+Quote Post
prond
post
Post #2





Grupa: Zarejestrowani
Postów: 254
Pomógł: 10
Dołączył: 8.11.2006
Skąd: Warszawa

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


Ja bym powiedział tak:
model #1) Daje większą elastyczność przy zmianach parametrów.
model #2) Nieco sztywniej, ale na pewno wydajniej zarówno przy zapisie jak i przy odczycie.


--------------------
--------------------------------------------------------------------------------
weblog.axent.pl
--------------------------------------------------------------------------------
Go to the top of the page
+Quote Post
kacperix
post
Post #3





Grupa: Zarejestrowani
Postów: 37
Pomógł: 0
Dołączył: 30.07.2006
Skąd: okolice Elbląga

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


No to wiem. Niestety coś za coś.

Wybrałem model pierwszy, bardziej elastyczny.

Z początku budziło to we mnie pewne wątpliwości, więc postanowiłem zrobić małe testy. Wygenerowałem dla wszystkich 3 tabel po 1.5 mln rekordów z losowymi danymi i zacząłem to testować. I wcale nie daje to tak złych wyników czasowych przy szukaniu określonych danych tym bardziej jeśli szuka po indeksach.

Ten post edytował kacperix 30.12.2008, 17:50:58
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 22.08.2025 - 04:50