Normalizacja - utworzenie poprawnej bazy

Odpowiedz Nowy wątek
2011-08-23 23:08
0

Witam,
Poszukuje osoby chętnej by mi wytłumaczyła (jestem nawet gotów zapłacić) proces normalizacji na przykładzie prostej bazy sklepu np. żeby w 3NP miało 9 tabelek, bez wodotrysków. Przygotowuję projekt do szkoły i bardzo mi zależy na poszerzeniu tej wiedzy a myśle że sa tu osoby dla których to 'pikuś, kwestia czy mogę/chcą mi pomóc.
Proszę o kontakt

Pozostało 580 znaków

2011-08-24 08:11
0

Zrobiłeś coś już sam, czy w ogóle się do tego nie zabrałeś?

Jak nie wie od czego zacząć to choćby mu żyłka pękła to niewiele to da. - MiL 2011-08-24 11:23
Ja bym zaczął od przejrzenia strony google.pl :D - Sarrus 2011-08-24 11:37

Pozostało 580 znaków

2011-08-25 11:59
0

Powiedzmy że pomińmy opis normalizacji, trochę przeczytałem na ten temat jednak brakuje mi pomysłu co dołozyć do mojej bazy.
Nie czuję się dobry w projektowaniu bazy więc chciałbym aby ktoś to sprawdził,a także podpowiedział jakie dołożyć kolumny. Chciałbym mieć w 3 postaci normalnej ok 9 tabel, a nie wiem jakie oprócz tego dodać tabele by zbytnio jej nie skomplikowac bo nie ma takiej potrzeby.
Załączam diagram tego co mam obecnie. Może wydać się śmieszne że tylko tylę ale dlatego proszę o pomoc.

  • baza.jpg (0,04 MB) - ściągnięć: 110

Pozostało 580 znaków

2011-08-25 12:12
1

Ale klient to może być firma, a firma ma pracowników. Firma może być w organizacji. Produkt może mieć kategorię, podkategorie itd :P. Nie wiem czy to nie jest zbytnie rozdymanie ;].
Czy to jest sklep internetowy? Bo zwykle w takich sklepach można dodawać do koszyka i to bym proponował w takim wypadku dodać.

Pozostało 580 znaków

2011-08-25 13:49
1

Nie kumam co to za tabela Transakcje. Klient na raz może kupić tylko jeden produkt? To podobno w latach osiemdziesiątych tak było, że tylko ocet można było kupić.

1) Produkt powinien być jakoś opisany, np. za pomocą oddzielnej tabeli Atrybuty (id_produktu, klucz, wartość), tak żeby można było mieć dowolną liczbę różnych atrybutów dla różnych produktów (np. dla książki to liczba stron i typ okładki, a dla wanny długość i szerokość).
2) Produkt ma też np. Producenta.
3) W sklepie zazwyczaj używa się Koszyka, zaś ten trzeba połączyć z Produktem poprzez tabelę pośrednią (np. PozycjeKoszyka), zawierającą dodatkowo informacje o ilości kupionych produktów.
4) Można np. dodać słowniki Typów płatności i Sposobów dostawy dla Zamówień, które tutaj zwą się Transakcjami chyba.

Pozostało 580 znaków

2011-08-25 14:09
0

Raczej taki stacjonarny, program do obsługi przez sprzedawcę/administratora.
Dodaję również przykłady baz sklepów, które udało mi się znaleźć, mam nadzieję że uda się coś wspólnie wykombinować :)

Ale syf ta baza... PLiterki, niejednoznaczne nazewnictwo, brak niektórych informacji... - Marcin.Miga 2011-08-25 16:00
to znalezione w Internecie przyklady - uczen94 2011-08-25 16:12

Pozostało 580 znaków

2011-08-25 15:45
1

To może od początku. Najpierw się zastanów, co chcesz mieć w tym sklepie, tzn.:

  • czy produkty mają być jakoś posegregowane w działy/kategorie;
  • czy produkty mają być jakoś opisane;
  • jakie informacje o kliencie mają być przechowywane;
  • czy klient ma mieć dostęp do koszyka, czy jedynie sprzedawca składa zamówienie na podstawie oczekiwać klienta (jak rozumiem ta druga opcja?);
  • czy mają być przechowywane informacje o fakturach;
  • czy mają być przechowywane informacje o danych dostawców;
  • czy mają być przechowywane informacje o stanie magazynowym produktów.

Pozostało 580 znaków

2011-08-25 16:19
0

somekind, nie wiem czy te pytania zadaleś bym sam sobie na nie odpowiedział, mam nadzieję że jesteś gotów mi pomóc stworzyć tą baze, więc odpowiem:
-produkty w kategoriach (tu można wydzielić pewnie osobną tabelę jak mam w obecnej formie)
-nie, produkty mają mieć jedynie nazwe, cene, ilosc, nop i do jakiej kategorii należą

  • informacje o klienicie : nazwisko, imie, adres, miejscowosc, kraj - choć jestem otwarty na inne propozycje, a obawiam się sytuacja z firmą/organizacją nie skomplikowałaby dla mnie sprawe
  • na razie rozwiązałem to tak że spredawca wszystko robi na życzenie klienta, czyli drugie
  • co do trzech ostatnich pytań, obawiam się że to skomplikuję sprawe, choć jakby ktoś rozrysował podpowiedział jak zrobić mysle że rozwiązało by sprawę i uzyskalbyśmy te 9 tabel w 3 NF

dziękuję za dotychczasową pomoc

Pozostało 580 znaków

2011-08-25 18:39
1

No dobra, to lecimy...

1) Twoja tabela Kategorie ma kolumę Kategoria. Nie jest to zbyt jasne, powinna to być raczej Nazwa albo NazwaKategorii.
2) Kolumna Ilosc w tabeli Produkty. Po co ona tam?
3) Do czego służy kolumna Rabat w tabeli Transakcje? Bo jeśli wpływa jakoś na cenę, to na jaką cenę? Sumę wartości produktów zawartych w transakcji?
4) I co to za kolumna Ilosc w tabeli Transakcje?
5) Relacja Transakcji z Produktami to relacja typu N:M, bo jedna transakcja może zawierać wiele produktów, a jeden produkt może występować w wielu transakcjach.. Dlatego trzeba to powiązanie zrealizować przez pomocniczą tabelę pośrednią (np. PozycjeTransakcji) z kolumnami: IdTransakcji, IdProduktu, IloscProduktu (bo można kupić więcej niż jeden produkt danego rodzaju w danej transakcji. I to chyba załatwia to, co próbowałeś osiągnąć kolumnami Ilosc w Transakcjach i Produktach.
6) Dodałbym jeszcze tabelę Producenci (Id, Nazwa) połączony z nową kolumną IdProducenta w tabeli Produkty.
7) No i przemyśleć należy sposób przechowywania adresów. Obecny sposób, jako kolumny w tabeli Klienci jest słaby, bo wartości kolumn Kraj, Miejscowosc, Ulica, Kod_pocztowy będą się powtarzały.
Myślę, że można by zrobić takie tabele:
a) Panstwo (Id, Nazwa)
b) Miejscowosc (Id, Nazwa, IdPanstwa)
c) Ulica (Id, Nazwa, IdMiejscowosci)
d) KodPocztowy (Id, Wartosc)
e) KodUlica (IdKodu, IdUlicy) - pomocnicza, ale niezbędna, bo zarówno jedna ulica może mieć wiele kodów pocztowych, jak i jeden kod może być przypisany do wielu ulic.

Wszystko to, przy założeniu, że to projekt szkolny, a nie praktyczne rozwiązanie.

Pozostało 580 znaków

2011-08-26 03:42
0
  1. Zmienione na "NazwaKategorii"
  2. Stworzyłem ją by opisywała ile jest dostępnych sztuk tego produktu w sklepie, zrobiłem to z założeniem aby później zrobić np. że przy zawieraniu transakcji ta liczba będzie zmniejsza o ilość 'kupionych/zamówionych' produktów
  3. Przy zawieraniu transakcji sprzedawca może okreslic procentowo rabat, później od całosci jest ta kwota odejmowana. [taki bajerek...]
  4. Ilość w tabeli Transakcje - pokazuje ile klient zyczy sobie sztuk tego produktu przy zamówieniu
  5. niebardzo rozumiem jakie to ma przyniesc korzysci, ale utworzyłem tabele
  6. Myślę ze to niepotrzebne choć od bidy można by wstawić jakby brakowało, pisze tak z tego powodu że do kazdego produktu musiałbym przypisać producenta, a teraz jako nazwa produktu widnieje np. "biurko ikea larke zielone'
  7. utworzyłem, pominałem jednak punkt 'e', wydaje mi się za bardzo zagmatwane, 'we don't need go deeper' ;)

Zmieniłem to w bazie, jednak nie utworzyłem relacji ( z tym PozycjeTransakcji nie bardzo jak), obecny stan w załączniku.

Dziękuję, bardzo doceniam Twoją pomoc, wreszcie coś ruszyło.

edytowany 2x, ostatnio: uczen94, 2011-08-26 03:44

Pozostało 580 znaków

2011-08-26 19:02
0

Ad 3) Czyli cena zakupu wynikająca z Transakcji, to (Transakcje.Ilosc Produkty.Cena) (100 - Transakcje.Rabat)?
Ad 4) Czyli klient nie może kupić w ramach jednej Transakcji kilku różnych Produktów?

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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