dopasowywanie do siebie elementów (skladanie komputera z podzespolow)

0

Czesc.
W jaki sposob robi sie mechanizm dopasowywania do siebie elementow? Chodzi mi o coś takiego jak jest w niektórych sklepach internetowych, że możemy sobie złożyć komputer a aplikacja webowa podpowiada nam tylko kompatybilne części w zależności od tego co wybieramy. Jak takie coś zrealizować?
Załóżmy, że poszczegolne części trzymam w bazie danych. Jak zrobić mchanizm, ktory bedzie podpowiadal jakie czesci w danym momencie pasują i dawał mozliwość ich wyboru?
Nie chodzi mi o gotowy kod a jedynie o poradę jak powinien taki mechanizm wyglądać. Chciałbym coś takiego sobie napisć w ASP .NET MVC i SQL server

0

Nie bardzo się znam na składaniu komputetow, ale możesz zrobić tak:

Zakładam że Twój sklep sprzedaje 3 rodzaje produktow, powiedzmy płyty glowne, karty graficzne i procesory.

Dodając nowy produkt z panelu administracyjnego​, powiedzmy kartę graficzną, możesz wybrać procesory i płyty główne (multi select) kompatybilne z ta karta graficzna, która wprowadzasz do bazy produktów.

Z punktu widzenia bazy danych mozna to różnie rozwiazac. Jeżeli Twoja baza wspiera json to możesz zapakować idki kompatybilnych produktów do tej kolumny. Powiedzmy coś takiego:

id | name | compatible_products |
1  | Intel   | [2, 3]
2  | GeForce | [1, 5] 

W tym wypadku musisz pamiętać że jak dla nowej karty graficznej wybierasz jakiś procesor jako kompatybilny to jego id musisz wepchnąć do kolumny kompatybilnych produktów, ale również musisz zadbać o drugą stronę relacji, czyli dodać id nowej karty graficznej do kolumny kompatybilnych procesora Intel. Czyli obustronna relacja. W ten sposób wyświetlając procesor Intel będziesz wiedział że ta karta jest z nim powiazana.

Teraz tylko pozostaje przy wyświetlaniu karty graficznej pobrać wszystkie produkty o id pasujących do tych w kolumnie z kompatybilnymi produktami i voila :)

Alternatywa dla kolumny json jest tabela products_relations gdzie będziesz miał product_one_id product_two_id i primary key złożony z tych dwóch idikow. Nawet nie wiem czy tak nie będzie lepiej.

Tak bym to mniej więcej widział, chociaż to moja pierwsza myśl, bo nie robiłem jeszcze czegos takiego, więc może są lepsze rozwiązania.

0

To składanie komputera to tylko tak obrazowo chciałem przedstawić o jaki schemat mi mniej więcej chodzi. :-)
Problem dotyczy ogólnego dobierania kompatybilnych rzeczy i np może być sytuacja że jest przedmiot i ma np 2 konce i do obydwu koncówek trzeba dobrać kompatybilne przedmioty :)

0

Bardzo ciekawi mnie właśnie jak się robi takie rzeczy.

0

Rozszerzajac wypowiedz @Desu możesz uzyc kolumny xml, bo json słabo jest wspieramy na sql serwerze.

Co do zasady to musisz rozwiązać jak zapisać informacje o kompatybilnych podzespołach, reszta to już pochodna wybranego rozwiązania.

Czasami może być potrzebne coś pośredniego, np jeżeli pasujące produkty idą w setki, bo żaden uzytkownik nie będzie w stanie wprowadzić zależności....

1 użytkowników online, w tym zalogowanych: 0, gości: 1