Można śmiało powiedzieć, że model bazy danych EAV / CR jest zły. To mówi,
Pytanie: Jaki model, technika lub wzorzec bazy danych należy zastosować w przypadku „klas” atrybutów opisujących produkty handlu elektronicznego, które można zmienić w czasie wykonywania?
W dobrej bazie danych handlu elektronicznego będziesz przechowywać klasy opcji (np. Rozdzielczość telewizora, a następnie rozdzielczość każdego telewizora, ale następny produkt może nie być telewizorem i nie mieć „rozdzielczości telewizyjnej”). Jak je przechowywać, efektywnie wyszukiwać i pozwalać użytkownikom konfigurować typy produktów za pomocą zmiennych pól opisujących ich produkty? Jeśli wyszukiwarka stwierdzi, że klienci zazwyczaj szukają telewizorów na podstawie głębokości konsoli, możesz dodać głębokość konsoli do swoich pól, a następnie dodać po jednej głębokości dla każdego typu telewizora w czasie wykonywania.
Dobre aplikacje do handlu elektronicznego mają fajną wspólną cechę, w której pokazują zestaw produktów, a następnie mają „szczegółowe” menu boczne, w których można zobaczyć „Rozdzielczość TV” jako nagłówek, oraz pięć najpopularniejszych rozdzielczości telewizyjnych dla znaleziony zestaw. Po kliknięciu jednego z nich wyświetla się tylko telewizory o tej rozdzielczości, umożliwiając dalsze przeglądanie, wybierając inne kategorie w menu bocznym. Te opcje to dynamiczne atrybuty produktu dodane w czasie wykonywania.
Dalsza dyskusja:
Krótko mówiąc, czy w Internecie są jakieś linki lub opisy modeli, które mogłyby „naukowo” naprawić następującą konfigurację? Dziękuję Noelowi Kennedy'emu za zasugerowanie tabeli kategorii, ale potrzeba może być większa. Poniżej opisuję to inaczej, starając się podkreślić znaczenie. Być może potrzebuję korekty punktu widzenia, aby rozwiązać problem, lub może być konieczne zgłębienie głębiej do EAV / CR.
Uwielbiam pozytywną reakcję na model EAV / CR. Moi koledzy programiści mówią o tym, o czym Jeffrey Kemp poruszył poniżej: „nowe jednostki muszą być modelowane i projektowane przez profesjonalistę” (wyrwane z kontekstu, przeczytaj jego odpowiedź poniżej). Problemem jest:
- encje dodają i usuwają atrybuty co tydzień
(słowa kluczowe wyszukiwania dyktują przyszłe atrybuty) - nowe jednostki przybywają co tydzień
(produkty są składane z części) - stare elementy znikają co tydzień
(archiwizowane, mniej popularne, sezonowe)
Klient chce dodać atrybuty do produktów z dwóch powodów:
- wyszukiwanie działów / słów kluczowych / tabela porównawcza podobnych produktów
- konfiguracja produktu konsumenckiego przed zakupem
Atrybuty muszą mieć znaczenie, a nie tylko wyszukiwanie słów kluczowych. Jeśli chcą porównać wszystkie ciasta, które mają „lukier z bitej śmietany”, mogą kliknąć ciasta, kliknąć motyw urodzinowy, kliknąć lukier z bitej śmietany, a następnie sprawdzić wszystkie interesujące ciasta, wiedząc, że wszystkie mają lukier z bitej śmietany. To nie jest specyficzne dla ciast, tylko przykład.