![]() |
![]() ![]() |
![]() |
![]()
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. ![]() |
|
|
![]()
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 -------------------------------------------------------------------------------- |
|
|
![]()
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 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 04:50 |