lukaskolista
28.10.2010, 19:19:43
Witam. Zastanawiam sie, jak zaprojektowac baze danych.
Mam tabele
produkty
id
nazwa
firmy
id
nazwa
firmy_produkty
id
id_firmy
id_produktu
1 rekord w tabeli firmy_produkty to 1 produkt wyprodukowany przez dana firme. Zakladajac, ze firm jest bardzo duzo i produktow tez, a firmy sie szybko rozwijaja i produkuja duze ilosci produktow liczba 100 000 000 000 szybko zostanie osiagnieta. Czy ta struktura jest dobra? Moze jest jakas lepsza do przechowywania tego typu danych? Samo zliczanie produktow poszczegolnych firm bedzie trwalo dosc dlugo. Z gory dziekuje za pomoc
nospor
28.10.2010, 19:21:54
Przekombinowales. Skoro produkt jest produkowany przez jedną firmę to dwie tabele w zupelnosci wystarcza
firmy
id
nazwa
produkty
id
nazwa
id_firmy
lukaskolista
28.10.2010, 19:44:21
firmy, czyli duzo

duzo firm i duzo roznych produktow, kazda firma moze produkowac kazdy produkt
nospor
28.10.2010, 19:52:06
100 miliardów produktów.... czy ty piszesz aplikacje dla Stanów zjednoczonych? No nie sądzę

100 miliardów produktów.... czy u ciebie produkt to pojedyncza zapałka? Czy może ogólnie produkt zapałka i już. Jak ktoś wyprodukuje milion zapałek to u Ciebie w bazie pojawi się milion rekordów zapałek, czy może jednak jeden produkt zapałka? Jesli pojawi ci się milion rekordów zapałek - źle zaplanowałes baze. Jesli pojawi ci się jeden produkt zapałka - jakim cudem chcesz osiągnąc 100 miliardów produktow
lukaskolista
28.10.2010, 20:01:47
produkt to na przyklad paczka ciastek
10000 firm produkujacych dziennie 1000 paczek akzda to sie szybko uzbiera, dlatego pytam czy dobrze to zrobilem. Nie zrobie tak:
firmy_prodykty
id_firmy
ciastka (int)
batoniki(int)
bo typow produktow moga byc setki, chipsy, czekolady itp
nospor
28.10.2010, 20:20:50
1) Czy kilka firm produkuje tę jedną paczke ciastek? No raczej nie.
2) po co ci kazdy oddzielny rekord na kazda paczke ciastek? Sledzisz losy kazdej pojedynczej paczki ciastek?
tabela firma
id
nazwa
tabela produkt
id
nazwa
id_firma
ilosc
lukaskolista
28.10.2010, 20:41:51
2 rozne firmy moga produkowac ten sam produkt, np. batonik. Batoniki moze produkowac dowolna ilosc firm, jednak dalej chodzi o batonik, ktorego cena sprzedazy wynosi 1,5zl
Mephistofeles
28.10.2010, 20:45:31
Nie, dwie firmy nie mogą produkować tego samego batonika. To będą 2 różne batony. A poza tym jak mówi nospor, po co ci każdy egzemplarz produktu w bazie? Chcesz ich ilość? Dodaj takie pole do tabeli.
Crozin
28.10.2010, 20:50:26
Tak na początek. Tabele łączące relacje wiele-do-wielu (czyli firmy_produkty z Twojego przykładu) nie wymagają kolumny id. id_a, id_b w zupełności wystarcza. To tak swoją drogą.
Co do tych produktów. Jeżeli firma A, B, C i D produkują batoniki (nawet dokładnie takie same) powinny Ci się pojawić 4 nowe rekordy w tabeli produktów, bo z logicznego punktu widzenia są to 4 różne produkty. Natomiast fakt, że firma A wyprodukowała 1000, B 10000 a C i D po 500 batoników powinieneś uwzględnić zmieniając jedynie wartość "ilość" przy każdym produkcie. Bo to już jest ten sam produkt.
To jest standardowy model, ale może on w zależności od Twoich potrzeb wyglądać inaczej. Baza może wymagać zmiany struktury jeżeli przykładowo będziesz miał różną ilość tego samego produktu w różnych terminach albo będziesz śledzić losy pojedynczego produktu (o czym wspomniał nospor). Jeżeli masz jakieś niestandardowe wymagania, to podaj je najpierw.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.