![]() |
![]() |
![]()
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%) ![]() ![]() |
G - sms płatny raczej odpada (IMG:style_emoticons/default/biggrin.gif) Ale jakaś weryfikacja być musi. A nie chcę z tego rezygnować, bo fajnie jeśli userzy mogą dodawać tagi. Oczywiście trzeba byłoby je później przeglądać i wywalać te najbardziej 'śmieszne'. Ale jeśli nie będzie żadnej weryfikacji to roboty będą wpisywać masę śmieci - muszę jakoś tego uniknąć.
E - Poniżej przykładowy fragment struktury: cat1-subcat3-subsubcat12-product75 i problem w tym, że product ma przypisany tag ale kategorie już nie mają tagów. W tabeli products są i kategorie i produkty, niczym się różnią poza tym, że pierwsze mają potomków a drugie nie. Mogę oczywiście pobrać z tabeli products wszystkie te produkty które mają (w innej tabeli) zapisany jakiś tag. Ale wtedy dostaje płaską listę a nie drzewo. A właśnie drzewo chciałbym. Dlatego pisałem, że nie mogę pobierać wprost drzewa z elementami posiadającymi jakiś tag bo tagi mają tylko produkty. Jedyne co mi przychodzi do głowy to rekurencyjne dodawanie tagów od produktu w górę. Czyli dodaje tag 'super' do product75 i potem od razu rekurencyjnie jest on dopisywany do wszystkich przodków ( cat1, subcat3, subsubcat12 ). Ale może można jakoś inaczej? Wiesz z tą lokalizacją to myślałem, że można sobie poradzić może przez sesje i wokół tego krążyłem. Ale jak są dwa takie linki do tego samego produktu, tyle, że z różnego menu, to się nie da. Rozwiązanie ze zmiennymi get mam teraz prostsze. Przekazuje nazwę tabeli ze struktura i id produktu index.php?str=tree2&id=98 Wtedy przodków do ścieżki mam z tabeli tree2 a produkt o id=98 z tabeli products. Jedynie jeśli product występuje kilka razy w jednym drzewie to się sypie. Ale tutaj chyba adres IPadress byłby lepszy? index.php?str=tree2&ipadress=1.9.23.56.236 Co o tym myślisz? pozdro |
|
|
![]() ![]() |
![]() |
Aktualny czas: 9.10.2025 - 09:20 |