Baza danych sklepu online - kwiaciarnia do sprawdzenia!

0

Witam!

Potrzebuję rad i pomocy przy tworzeniu tabel do bazy sklepu online kwiaciarni. Prosze o ocene tego co juz mam i rady co dorobic, jak polaczyc relacje ( z tym najwiekszy problem )

http://img444.imageshack.us/img444/1117/bazay.png

0

W takiej postaci jak masz nie widzę sensu tabel klienci_adres i klienci_dane. Na pewno masz błędne relacje, tabela klienci jest nadrzędna dla _dane i _adres, więc to w nich pownny być FK do PK z klienci. Na pewno nip i regon powinny być w tabeli klienci, bo każdy klient będzie miał raczej tylko jedną wartość tych numerów. Jeśli klient = zamawiający, to wydaje mi się że można mieć jego dane adresowe w tabeli klienci, bo prawdopodobnie wystarczy nam jeden adres tego klienta (jeśli w ogóle). Adres - ulica nr budynku, a numer lokalu? Nie każdy mieszka w domu jednorodzinnym, czy pracuje w biurowcu.

Można rozważyć osobną tabelę na tel, fax, email, ale raczej zrobił bym taka:

Klienci_dane_kontaktowe
KlientId (FK do tabeli klienci)
TypKontaktu (Tel/fax/email, ewnetualnie bardziej szczegółowo, tel prywatny, tel komórkowy, tel służbowy, ...)
Wartość

Podobne uwagi do odbiorców co do klientów. Odbiorca jest wg mnie obiektem podrzędnym do zamównienia.
Teraz masz że zamówienie może być max tylko do jednego odbiorcy wysłane. Pytanie czy jedno zamówienie nie może mieć wielu odbiorców. Wyobraź sobie że na dzień kobiet chcę zamówić dla 10 kobiet taki sam bukiet kwiatów, co wtedy? Możesz albo na poziomie gui zebrać dane i wygenerować 10 zamównień na ten sam bukiet do 10 różnych odbiorców, albo zamówienie mieć jedno z 10 odbiorcami. Ja poszedłbym raczej w opcje 1.

Nie widzę sensu tabeli realizacja, domyślam się że zamówienie ma jakiś workflow, ale tzn. że zamówienie przechodzi przez kolejne statusy.

kompozycje_cena jest bez sensu, bo cena nie jest zależna od niczego. Rozumiem jeśli byłaby zależna od przedziału dat, czyli np. w maju bukiet kosztuje 30 zł, a w czerwcu 33 zł.

Nie rozumiem do czego jest historia, bo przecież historia zamówień klienta wynika z zamówień. Warto przy zamówieniu trzymać cenę jaką płaci klient, bo może być ona uzależniona od promocji etc. więc wyliczenie jej zawsze ad-hoc może być trudne - to masz.

Nie wiem do czego jest zapotrzebowanie. Potrafię się domyślić, ale znowu ta tabela nie ma sensu. Zapotrzebowanie powinno być bardziej skomplikowane, być skierowane do dostawcy, opiewać na jakąś ilość bukietów, po jakiejś cenie, którą ty płacisz dostawcy. I znowu FK w drugą stronę.

Zamówienie. Kolumna termin powinna być datą.

Podsumowując - źle. Realny system ma małe szanse na sensowne działanie na takiej strukturze.

0

Wiekszosc tych tabel mam z gotowego projektu jednego z wykladowcow, juz nie wiem jakiej uczelni :)
A co do ilosci tabel to musi byc taka poniewaz mam miec minimum 10, dlatego takie podtabelki musza byc. Co do reszty najpozniej jutro to pozmieniam, jesli masz jakies rady to slucham jeszcze.

PS. Jeszcze jakbys mogl to wytlumacz mi sprawe relacji. Czytalem definicje i jaka kiedy powinno sie stosowac, jednak jak to wyglada od strony teoretycznej

0
Kepad90 napisał(a)

A co do ilosci tabel to musi byc taka poniewaz mam miec minimum 10

Wybacz ciekawość, ale nie mogę się powstrzymać. Te minimum dziesięć tabel, to związane z jakimś rytuałem jest, czy jak? Chętnie się dowiem, bo a nuż czegoś ciekawego się człowiek nauczy...

0

:)
Prowadzacy wymaga od nas takiej ilosci :) Pytalem go dlaczego akurat taka, stwierdzil ze od to minimum, ktore dobry projekt powinien posiadac ;)

0

Możesz go poprosić, aby to tutaj napisał. Będziemy mieli kolejną pozycję do perełek :)

0

Tez sie zdziwilem, no ale coz poradzic ;)
Stad porozbijalem swoje tabele na mniejsze :)

1
areksum napisał(a)

Możesz go poprosić, aby to tutaj napisał. Będziemy mieli kolejną pozycję do perełek :)

Ale czemu?
Moim zdaniem założenie o minimalnej wielkości projektu do wykonania na zajęcia ma jak najbardziej sens, a inaczej niż dolnym limitem liczby tabel tego zrobić się raczej nie da. Przy dziesięciu tabelach da się sprawdzić czy student potrafi zaprojektować coś sensownie albo czy potrafi układać złożone zapytania.

0

A co jeśli ktoś zrobi zadanie, tzn zaprojektuje świetną strukturę bazy, ale na mniejszej ilości tabel? Zda zapewne. Doda po prostu puste tabele do bazy i warunek spełniony.

Prowadzący te zajęcia powinien raczej powiedzieć coś normalizacji bazy, jakie dane powinny się znaleźć, o to już może rzutować w przybliżeniu na ilość tabel. Ale nie po prostu baza z co najmniej x-nastoma tabelami... jak tak się prowadzący zajęcia wyraził, że baza ma dotyczyć sklepu z kwiatami, i posiadać co najmniej 10 tabel, to taki ktoś MUSI być tępakiem.
Nie znamy treści zadania, więc się do końca nie mogę wypowiedzieć, chociaż i tak nie mogłem się powstrzymać.

No na rany chrystusa! przecież ilość tabel zawsze z czegoś wynika, a nie: ma mieć 10 tabel i wokół tego budujemy projekt/strukturę.
Było by to fajne i śmieszne, gdyby nie było prawdopodobnie prawdziwe i dotyczące kształcenia ewentualnych przyszłych specjalistów.
Nie myślę nawet, jaki poziom musi prezentować specjalista nauczający.

Ale tak jak pisze, nie znam prawdy, więc sobie marudzę w chmurki.

0
areksum napisał(a)

Zda zapewne. Doda po prostu puste tabele do bazy i warunek spełniony.

Przepuszczenie takiego czegoś bardzo źle świadczyłoby o prowadzącym.

Prowadzący te zajęcia powinien raczej powiedzieć coś normalizacji bazy, jakie dane powinny się znaleźć, o to już może rzutować w przybliżeniu na ilość tabel.

Sugerujesz, że domyślenie się, co powinno znajdować się w bazie danych kwiaciarni przekracza możliwości intelektualne studenta? No może...
A o normalizacji powinna być mowa na wykładzie.

Ale nie po prostu baza z co najmniej x-nastoma tabelami... jak tak się prowadzący zajęcia wyraził, że baza ma dotyczyć sklepu z kwiatami, i posiadać co najmniej 10 tabel, to taki ktoś MUSI być tępakiem.

Ale dlaczego?
Minimum 10 ma być miarą skomplikowania zdania. W takiej bazie pewno będzie z 5 słowników, 3 tabele główne i 2 pomocnicze dla relacji n:n, więc student to (przynajmniej teoretycznie) przećwiczy.
Zresztą dla mniejszej liczby tabel nie wyszedłby sensowny model.

No na rany chrystusa! przecież ilość tabel zawsze z czegoś wynika, a nie: ma mieć 10 tabel i wokół tego budujemy projekt/strukturę.

Chodzi o to, żeby nikt nie oddał bazy z dwiema tabelami. Brak wymogu byłby dziwny, nie sądzisz?

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0