![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 41 Pomógł: 0 Dołączył: 14.03.2007 Ostrzeżenie: (0%) ![]() ![]() |
Chciałbym poradzić się bardziej doświadczonych osób w kwestii projektowania baz danych. Mam do napisania CRUD, który będzie operował na sporej ilości produktów podzielonych na kilkadziesiąt kategorii. Produkty konkretnej kategorii mają dedykowane pola i tak np. dla monitorów będzie to rozdzielczość, przekątna, plamka. Baza powinna być dostosowana do szybkiego pobierania wszystkich monitorów spełniających konkretne kryteria. Budowanie osobnej tabeli dla każdej kategorii wydaje mi się słabym pomysłem. Podobnie mam wątpliwości co do rozwiązania przedstawionego na tym obrazku
http://i.imgur.com/I2FSz.png Do tej pory używałem wyłącznie MySQL i SQLite, więc nie jestem na czasie w temacie baz. Może da się to efektywnie rozwiązać za pomocą jakiegoś MongoDB? Ten post edytował bangoo 18.12.2012, 15:27:58 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 42 Pomógł: 4 Dołączył: 11.12.2009 Ostrzeżenie: (0%) ![]() ![]() |
"Spora" ilość produktów to ilość bardzo subiektywna (IMG:style_emoticons/default/smile.gif) . Na pewno "płaska" baza w stylu mongo się tutaj nie nada - za dużo ograniczeń, tragedia w modyfikacjach (a co jak będą chcieli zmienić nazwę kategorii ?) i kompletna nieintuicyjność. Ja bym to rozwiązał dodatkową relacją (produkty należą do kategorii, atrybuty należą do kategorii, produkty mają różne wartości atrybutów) - czyli to co masz w linku. W celach optymalizacyjnych zainteresuj się bardziej cache'owaniem frontu (żeby nie pukać do bazy), a nie "upraszczaniem" relacji. Katalogi mają to do siebie, że są "początkiem" jakiś statystyk/raportów itp. - bez dobrze skrojonej bazy będzie to katorga (IMG:style_emoticons/default/smile.gif) . Jeśli kategorie są zagnieżdżone poczytaj o nested tree set (bardzo fajny sposób na drzewka, szybkie i proste wyszukiwanie dzieci/rodziców, ciężki insert, ale to margines operacji w takich systemach).
Ten post edytował masahuku 25.02.2013, 23:40:21 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 9.10.2025 - 16:24 |