Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Mini projekt bazy danych
lisu
post 25.01.2003, 23:06:50
Post #1





Grupa: Zarejestrowani
Postów: 100
Pomógł: 0
Dołączył: 25.01.2003
Skąd: mazury, wawa

Ostrzeżenie: (0%)
-----


1.Chciałbym zrobić cennik firmie handlującej sprzętem komputerowym.
Czy opłaca się robić tabele dla oddzielnych grup produktów (monitory, hdd) i wtedy móc sortować wg cech charakterystycznych dla tych produktów, czy też zrobić jedną tabelę z produktami i drugą ze szczegółami (unikalne id i łatwiejsze zrobienie koszyka).

Co doradzacie

2.Chciałbym zrobić listę swoich albumów mp3 i mieć możliwość wyszukiwania poszczególnych utworów. Czy przechowywać nazwy w jakimś 1 polu oddzielone np '|' czy zrobić oddzielną tabelę. Czy warto w II przypadku robić jeszcze jedną tabelę na 'zależności' (na wypadek gdyby 1 utwór znajdował się na >1 albumach.

chodzi mi o coś takiego: http://sputnik.pl

Z góry THX
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
itsme
post 26.01.2003, 09:45:55
Post #2





Grupa: Zarząd
Postów: 1 512
Pomógł: 2
Dołączył: 22.04.2002
Skąd: Koszalin




1. Robisz jedna tabele gdzie masz nastepujace pola [id_produktu].[nazwa_produktu].[cena].[grupa] gdzie grupa moze posiadac nastepujace wartosci [monitor].[płyta główna].[itd....]. Dlaczego w jednej tabeli? Ponieważ w 2 tabeli i tak byś trzymał tylko i wyłącznie wartości z pola [grupa] zas w tabeli PRODUKTY albo [id_grupy] albo nazwe grupy. Oczywiscie jeżeli chcesz mieć łatwy dostęp do dodawania, usuwania i edycji grup towarowych zalecam jednak wykonanie 2 tabeli z tymi nazwami zas w tabeli towar przechowywać klucz z tabeli grupy.

2. Wszystko zależy od Twoich potrzeb można to zrobić w jednej tabeli [id].[tytul].[czas].[wykonawca].[album] - i po temacie wszystko zalatwione ale jak chcesz sie pobawic to jest tu relacja wiele do wielu czyli jeden utwor moze byc w wielu Albumach zas album moze posiadac wiele utworów do tego mozesz zrobic jeszcze jedna tabele wykonawcow tu sprawa jest podobna jak przy poprzedniej relacji rowniez jeden do wielu - jeden utwor moze miec wielu wykonawcow jak i wykonawca (co zrozumiale) moze miec wiele utworow.
W takim wypadku robisz tabele:
- utwory pola: [id].[tytul].[id_wykonawcy].[czas]
- albumy pola: [id].[tytul]
- artysta pola: [id].[imie_nazwisko].[opis]....

sa tez potrzebne dodatkowe tabele ktore wspomoga cala baze
- posrednik_utwory_albumy pola: [id_albumu].[id_utworu] - gdzie kluczem sa te dwa pola
- posrednik_artysta_utwor pola: [id_artysty].[id_utworu] - gdzie kluczem sa te dwa pola

zabawa jest przednia gdyz sam mySQL nie posiada relacji wiec jest problem z usuwaniem. Z dodawaniem tez jest nie malo zabawy. Jak ktos ma wyobraznie to to zobaczy:
1. propozycja (1 tabela) dodajesz album z utworami masz wiersz z polami:
tytul albumu, wykonawca, tytul utworu, czas i przycisk dodaj (oczywiscie mozesz miec listy rozwijane gdzie przy zapytaniu do mySQL typu $zapytanie="select DISTINCT album from mp3 order by album" otzrymasz liste albumow to samo mozesz zrobic przy wykonawcach. I temat zalatwiony.
Zas 2 rozwiazanie jest fajne bo nie dublujesz wielu danych zas odczuwalne to bedzie powiedzmy przy 50 tys rekordow biorac pod uwage ze na plycie jest srednio 17 utworow daje do okolo 2941 plyt CD.

Czyli kto ma takie archiwum questionmark.gifquestionmark.gif

Pozdrawiam


--------------------
brak sygnaturki rowniez jest sygnaturką
Go to the top of the page
+Quote Post
lisu
post 26.01.2003, 10:26:38
Post #3





Grupa: Zarejestrowani
Postów: 100
Pomógł: 0
Dołączył: 25.01.2003
Skąd: mazury, wawa

Ostrzeżenie: (0%)
-----


Cytat
1. ... Oczywiscie jeżeli chcesz mieć łatwy dostęp do dodawania, usuwania i edycji grup towarowych zalecam jednak wykonanie 2 tabeli z tymi nazwami zas w tabeli towar przechowywać klucz z tabeli grupy.


Chyba nie do konca sie zrozumieliśmy smile.gif. Co w przypadku gdybym chciał posortować monitory wg przekątnej, albo dyski wg ilości cacheu lub pojemności. I tak musiałbym stworzyć 3 tabelę właśnie z tymi cechami charakterystycznymi dla tej właśnie grupy. Zastanawialem sie nad stworzeniem tabel dla KAŻDEJ z tych grup. A więc np: tabela monitory [id_z_tabeli_produkty].[przekatna].[max_rozdz].... dla dysków: [id_z_tabeli_produkty].[pojemnosc].[cache].... Czy może jakoś inaczej z mniejszą ilością tabel.

Cytat
2. Wszystko zależy od Twoich potrzeb ....


To sprecyzuje moje pytanie:
MAM:
tabela artysci: [id_art].[nazwa].[jakies_info]
tabela albumy [id_alb][tytul][id_art][rok][info]

Czy:
1) mam robić dodatkowe POLE w tabeli albumy, w którym umieściłbym nazwy utworów danego albumu oddzielone znakiem np '|'.
2)zrobić tabele utwory: [id_utw].[nazwa]
oraz tabele powiazania: [id_utw].[id_alb]. Po id_alb doszedłbym już do nazwy artysty.

Cytat
zabawa jest przednia gdyz sam mySQL nie posiada relacji wiec jest problem z usuwaniem. Z dodawaniem tez jest nie malo zabawy. Jak ktos ma wyobraznie to to zobaczy:


Wodzu dzięki. Wreszcie ktoś odpowiedział na to pytanie, gdyż z kolegą się o to długo spieraliśmy biggrin.gif



Cytat
Zas 2 rozwiazanie jest fajne bo nie dublujesz wielu danych zas odczuwalne to bedzie powiedzmy przy 50 tys rekordow biorac pod uwage ze na plycie jest srednio 17 utworow daje do okolo 2941 plyt CD.

Czyli kto ma takie archiwum questionmark.gifquestionmark.gif


Hehe docelowo biggrin.gif

Pzdrwm.
Go to the top of the page
+Quote Post
itsme
post 26.01.2003, 11:17:21
Post #4





Grupa: Zarząd
Postów: 1 512
Pomógł: 2
Dołączył: 22.04.2002
Skąd: Koszalin




Cytat
Chyba nie do konca sie zrozumieliśmy smile.gif. Co w przypadku gdybym chciał posortować monitory wg przekątnej, albo dyski wg ilości cacheu lub pojemności. I tak musiałbym stworzyć 3 tabelę właśnie z tymi cechami charakterystycznymi dla tej właśnie grupy. Zastanawialem sie nad stworzeniem tabel dla KAŻDEJ z tych grup. A więc np: tabela monitory [id_z_tabeli_produkty].[przekatna].[max_rozdz].... dla dysków: [id_z_tabeli_produkty].[pojemnosc].[cache].... Czy może jakoś inaczej z mniejszą ilością tabel.

Teraz rozumiem walczylem już z tym problemem gdy robiłem identyczną bazę w accessie
ten problem ma trzy rozwiazania:
1. Robisz tyle tabel ile jest typów produktow np: pr_monitor, pr_hdd, pr_pl_glowna, pr_grafika .... i w nich odpowiednio nazywając kolumny np pojemnosc (hdd), obroty (hdd) oraz plamka (monitor), cale (monitor), flatron (monitor) jest to fajne ale czasochlonne nie tylko przy samym tworzeniu ale rowniez pozniej w dzialaniu - musisz wykonac robota ktory bedzie dodawal kolumne gdy wejdzie nowy parametr ...
2. jest jedna tabela [id_produkt], [nazwa], [pole1] ...... [poleN] - czyli powiedzmy okolo 50 kolumn i teraz w zaleznosci od typu produktu na www domyslenie wyswietla dany parametr zmieniasz tylko naglowek kolumny na stronie w jednej kolumnie mozesz miec przekatna monitora, szybkosc procka, pojemnosc HDD.
3.
PRODUKT
<- TYP
-> CECHY
- DANE
w zwiazku z tym ze tak naprawde to typ produktu posiada cechy nie sam produkt mozna przypisac je do TYPU. I tak idąc dalej wpisujesz produkt NOWY podczepiasz typ_produktu tym samym sciagane sa CECHY ktore po wypelnieniu sa zapisywane w tabeli DANE [id],[id_PRODUKTU], [id_CECHY], [pole1].....[poleN]
parametry masz w tabeli DANE zas nazwy masz w tabeli CECHY. Relacja istnieje miedzy DANE i CECHY oraz DANE i PRODUKT i masz alll
zas PRODUKT - TYP - CECHY bedzie pomocne podczas wprowadzania danych i niegdzie wiecej

Pozdrawiam


--------------------
brak sygnaturki rowniez jest sygnaturką
Go to the top of the page
+Quote Post
lisu
post 26.01.2003, 12:23:46
Post #5





Grupa: Zarejestrowani
Postów: 100
Pomógł: 0
Dołączył: 25.01.2003
Skąd: mazury, wawa

Ostrzeżenie: (0%)
-----


BIG THX. 8)

Wykorzystam chyba propozycję nr 3 gdyż wydaje się być najbardziej rozwojowa i po napisaniu całego interfejsu nie trzeba nic ręcznie robić (te roboty)
Go to the top of the page
+Quote Post
itsme
post 26.01.2003, 12:26:45
Post #6





Grupa: Zarząd
Postów: 1 512
Pomógł: 2
Dołączył: 22.04.2002
Skąd: Koszalin




polecam sie na przyszlosc


--------------------
brak sygnaturki rowniez jest sygnaturką
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 05:15