![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 220 Pomógł: 0 Dołączył: 24.08.2009 Ostrzeżenie: (0%) ![]() ![]() |
Mam zrobić bazę danych do małego sklepu internetowego. Ale wymagania są dość nietypowe:
A) Produkty mają być umieszczone w drzewie kategorii, z którego będzie robione menu - proste. (IMG:style_emoticons/default/cool.gif) System tagów i wyszukiwarka po tagach - proste. C) Produkty mają być umieszczone w drzewie2 producentów i ich kategorii, z którego będzie robione kolejne menu. Czyli jeśli producent X ma u siebie jakieś produkty w jakiś kategoriach to cały ten schemat ma być odwzorowany w tym moim drzewie2. Czyli poziom 0 to nazwy producentów, poziom 1 to najbardziej ogólne kategorie u danego producenta i tak dalej. Mi się to nie podoba ale ponoć ma to ułatwiać szukanie produktów jeśli wcześniej szukało się ich na stronie jakiegoś producenta. I z tym mam problem. Zrobiłem drugie drzewo i dodawany do bazy produkty trzeba umieścić i w pierwszym drzewie (kategorii) i w drugim (producentów). I jakoś to działa ale pojawił się problem ze ścieżką nawigacyjną (taką w stylu "tu jesteś"). Przy jednym drzewie sprawdzałem id wyświetlanego produktu albo grupy produktów i sprawdzałem w bazie co jest nadrzędne (kilka razy) i dostawałem ścieżkę. Ale teraz jest niejednoznaczność. Jeden produkt występuje w 2 drzewach i w zależności od tego czy został wybrany poprzez nawigowanie po drzewie 1 czy drzewie 2 powianiem wyświetlać różne ścieżki. Ale mam tylko id i nie wiem w które menu kliknął user, żeby otworzyć stronę produktu z tym konkretnym id. D) Do tego ma dojść jeszcze trzecie drzewo co już zupełnie miesza. E) Jeszcze odnośnie tagów, chciałbym, żeby po wybraniu wyświetlenia produktów z jakimś tagiem, te produkty wyświetlały się nie jako lista ale właśnie jako jedno z drzew. I tu problem taki, że dodanie do select prostego warunku where nie zadziała po kategorie nie mają dodawanych tagów. F) Inne sposoby szukania produktów. Co poza pełno tekstowym wyszukiwaniem produktów można dodać? Na razie dodałem wybór tagów z listy. G) Jeśli pozwolę na dopisywanie tagów przez każdego usera (jedno polowy formularz) to pewnie roboty będą dopisywać śmieci. Jak poza captcha można się zabezpieczyć przed tym. Może ktoś łaskawie pomógłby mi się uporać z projektem takiej bazy? Byłoby fajowo. Każda dobra rada na wagę złota. pozdro |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 220 Pomógł: 0 Dołączył: 24.08.2009 Ostrzeżenie: (0%) ![]() ![]() |
No niestety drzewa są różne, dzisiaj już 3. Również nie każdy produkt występuje we wszystkich drzewach. Cholerenie cięzko się z tym pracuje. Sam insert do bazy to poza meta danymi to również wybranie 3 rodziców. W adresie produktu przekazuje adres ip produktu i nazwę tabeli z drzewem. Jakoś działa.
Jest jeszcze jeden problem do rozwiązania. Chodzi o jakiś prosty warunek typu WHERE przy wyszukiwaniu produktów. Produkty po takim wyszukiwaniu mają wyświetlać się w drzewie kategorii. Ale jeśli produktowi przypisze jakiś tag, a nie przypisze go do jego rodzica to zarówno rodzic jak i jego wszyscy potomkowie nie zostaną wyświetleni, mimo, że powinni. Jak to rozwiązać? Przy pobieraniu drzewa sprawdzać rekurencyjnie kolejne poziomy potomków czy któryś nie spełnia odpowiedniego warunku i wtedy wyświetlać jego przodków? Zupełnie nie wiem jak to dobrze zrobić (IMG:style_emoticons/default/sad.gif) pozdro |
|
|
![]() ![]() |
![]() |
Aktualny czas: 7.10.2025 - 02:05 |