Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> projekt nietypowej bazy danych
nowy_pehapowiec
post
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
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
nowy_pehapowiec
post
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
Go to the top of the page
+Quote Post

Posty w temacie
- nowy_pehapowiec   projekt nietypowej bazy danych   5.10.2009, 23:27:11
- - jmail   lol? o tego przecież jest nazwa RELACYJNA baza da...   6.10.2009, 02:08:32
- - nowy_pehapowiec   No ale to bez sensu. Zastanów się. Każdy produkt m...   6.10.2009, 13:01:29
|- - Riklaunim   Cytat(nowy_pehapowiec @ 6.10.2009, 14:01...   6.10.2009, 14:38:13
- - jmail   to trzeba utworzyć osobne tabele na dowiązania pro...   6.10.2009, 13:52:15
- - nowy_pehapowiec   Chwilunia, ja wime co to są relacje w bazach danyc...   7.10.2009, 00:52:35
- - jmail   G - SMS płatny :F E - całkowicie nie rozumiem F ...   7.10.2009, 01:34:17
- - nowy_pehapowiec   G - sms płatny raczej odpada Ale jakaś weryfikacj...   7.10.2009, 11:17:43
- - jmail   tak tak. moze jeszcze użytkownika i hasło do bazy ...   7.10.2009, 21:24:47
- - nowy_pehapowiec   Sam widzisz, że baza jest zakręcona. Moim zdaniem ...   14.10.2009, 11:19:10
- - VegetaSSJ   Nie rozumiem po co tworzysz 2 drzewa. Dla mnie do ...   15.10.2009, 13:35:47
- - jmail   vegeta - kategorie w sklepie != kategorie prod...   15.10.2009, 15:31:01
- - nowy_pehapowiec   No niestety drzewa są różne, dzisiaj już 3. Równie...   16.10.2009, 10:28:17
- - jmail   [SQL] pobierz, plaintext  WHEREprodukt_tag = ...   19.10.2009, 13:14:56
- - vokiel   G). Pozwól na dopisywanie tylko zarejestrowanym, p...   19.10.2009, 18:11:44
- - nowy_pehapowiec   Cytat(jmail @ 19.10.2009, 14:14:56 ) ...   20.10.2009, 11:44:09
- - Zyx   Na stronie powinna być wykonywana w miarę stała li...   20.10.2009, 12:16:40
- - nowy_pehapowiec   Nie mogę się połapać w tym co napisałeś. Mam w jed...   20.10.2009, 14:13:41


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 9.10.2025 - 09:20