Jacek Dunikowski

Jacek Dunikowski Front-end Developer

Temat: Prosty projekt bazy danych.

Witam, mam do zrobienia projekt bazy danych serwisu komputerowego (w DBDesigner 4), baza nie musi być jakaś wybitnie zaawansowana, jednak mam kilka problemów.

1 ) Dane: o przyjmowanym sprzęcie, klientach, pracownikach punktu, zgłoszeniach usterek.

Zatrzymalem się w tym miejscu:


Obrazek


2 ) I chciałbym się dowiedzieć czy jak na razie zamysł jest dobry, czy dane w tabelach odpowienie czy może coś więcej.

3 ) I jak zrobić te nieszczęsne zlecenia, np przy wymianie jakiegos podzespolu powinna powstac tabela HURTOWNIA.

.. albo gdy sprzet jest na gwarancjii, relacja do tabeli SERWIS_PRODUCENTA.

Szczerze mówiąc sie pogubiłem i potrzebuje drokowskazu :PJacek Dunikowski edytował(a) ten post dnia 18.04.13 o godzinie 20:10

konto usunięte

Temat: Prosty projekt bazy danych.

Jacek D.:
Witam, mam do zrobienia projekt bazy danych serwisu komputerowego (w DBDesigner 4), baza nie musi być jakaś wybitnie zaawansowana, jednak mam kilka problemów.

Wymyśliłem że serwis działa na zasadzie KLIENT (id, dane, adres, telefon itd) dostarcza SPRZET( id, nazwa itd.) ktory jest podzielony na KATEGORIE nastepnie od sprzetu jest relacja do ZLECENIE (id, data_zgloszenia, data_realizacjii) i teraz myślę że powinno być coś takiego jak REALIZACJA i nie wiem co dalej, jesli sprzet jest na gwarancjii to powinno byc realacja do autoryzowanego seriwsu, a jesli nie to do hurtowni gdzie nastepuje zakup czesci , jeszcze tez zalezy czy naprawa dotyczy strony hardware czy software.... masakryczny temat wybralem :D może ktoś naprowadzic?


Tak, napisz wymagania w punktach, bo to jest okrutnie nieczytelne.

konto usunięte

Temat: Prosty projekt bazy danych.

Raczej chodziło i o ładne i treściwe wymagania dotyczące bazy danych, ale to też może być...

Nie jest źle.

Dodałbym powiązania z tabelą z pracownikami. Kto przyjął sprzęt, kto zamknął zlecenie.

Zamówienie rzeczy w hurtowni może wyglądać tak: tabela hurtownia(nr_zamowienia, pracownik_robiący_zamówienie_w_hurtowni, numer/opis_części, data_utworzenia, data_zamówienia, data_dostawy, uwagi/komentarz)

I podobna tabelka do gwarancji producenta (nr_zamówienia, pracownik_wysyłający_do_producenta, data_wysłania, data_otrzymania, uwagi/komentarz)

Aby dostać historię zamówienia, wyciągasz dane z obu tabel, sortujesz po dacie i już wiesz co się działo.

Oczywiście to nie jest jedyna możliwość i ogólnie w bazach danych bardzo łatwo wykazać, że jakaś struktura jest do dupy, a nieco trudniej wykazać, to jest najlepsze możliwe rozwiązanie. Tak więc jak ktoś pokaże inne, to może być tak samo dobre.Szymon G. edytował(a) ten post dnia 18.04.13 o godzinie 20:19
Adrian Kaczmarek

Adrian Kaczmarek To czy człowiek jest
in­te­ligen­tny
poz­na­je się po
je­...

Temat: Prosty projekt bazy danych.

Nie zastanawiając się bardziej to moje sugestie:

1. zmień przyjmowany sprzęt na sprzęt
2. przenieś kolumny z przyjmowany sprzęt (data przyjęcia, kategoria, klient) do zleceń
3. dodaj do zlecen id sprzętu (rel 1 do 1)

* każdy sprzęt może być wysłany na serwis kilkukrotnie

Możesz również dodać tabelę z logiem operacji (id pracownika, opis, data .... itp) w relacji 1 do wielu do tab. zleceń
Hurtownie olej bo to jest inny system, nie powinno się tak mieszać funkcjonalności w jednym systemie, ew. dodać do zleceń tabele z relacjami 1 do wielu: id_zlecenia | id_zamowienia_sys_mag
Jacek Dunikowski

Jacek Dunikowski Front-end Developer

Temat: Prosty projekt bazy danych.

Dzięki za sugestie Adrian, też myślałem że Hurtownia to za dużo, ale gwarancja z wysłaniem sprzętu do autoryzowanego serwisu producenta chyba nie aż tak skomplikowane? Baza ma byc prosta ale jak najbardziej funkcjonalna, wszelkie wskazówki przyjmę chętnie :)
Adrian Kaczmarek

Adrian Kaczmarek To czy człowiek jest
in­te­ligen­tny
poz­na­je się po
je­...

Temat: Prosty projekt bazy danych.

To może w tym logu do zdarzeń dasz typ akcji lub coś w tym stylu.
W praktyce sprzęt może przechodzić przez rózne działy/pracowników/procesy. Każdy z nich można opisać za pomocą loga, tworząc historię do danego urządzenia. Jeżeli chciałbyś uwzględnić serwisy gwarancyjne, to można dać prostą strukturę:
| Serwis gwarancyjny |
-------------------------------
- IdSerwisu
- Nazwa
- Adres
- .....
- ProducentSprzetu (rel 1 do wielu)

| ProducentSprzetu |
- IdProducenta
-Nazwa

| ZlecenieGwarancyjne |
----------------------------------
- IdZlecenia (te zlecenia co wcześniej dałeś
- SerwisGwarancyjny
- DataWysyłki
- PlanowanaDataZwrotu
- DataZwrotu

PS.
A tak swoją drogą, to baza powinna być ostatnim projektowanym elementem systemu, ale rozumiem, że to taki przykład do nauki ...
Jacek Dunikowski

Jacek Dunikowski Front-end Developer

Temat: Prosty projekt bazy danych.

No i wyszło coś takiego.


Obrazek


1) Tylko teraz nie wiem na jakiej podstawie mam przekazywac zlecenie do zlecenia gwarancyjnego, nie powinno byc jakiegos pola usługa płatna/gwarancyjna? Relacja jest dobra?

2) Producenta sprzetu odpuscilem bo to juz bedzie za duzo, poprostu wysylamy do autoryzowanego serwisu i oni sie wszystkim zajmuja i odsylaja.

3) Czuje jeszcze że coś jest nie tak, tylko nie wiem co :D
Adrian Kaczmarek

Adrian Kaczmarek To czy człowiek jest
in­te­ligen­tny
poz­na­je się po
je­...

Temat: Prosty projekt bazy danych.

Klienta przypnij do zlecenia.
W zlecenie gwarancyjne zostaw tylko relacje do zlecenie, pracownik, serwis; + data wysyłki, + data zwrotu i ew. żeby wszyscy byli happy daj np. uwagi :)
Jacek Dunikowski

Jacek Dunikowski Front-end Developer

Temat: Prosty projekt bazy danych.


Obrazek


A w ten sposób może być? Sprzęt trafia albo na gwarancje albo do zlecenia płatnego. Nie wiem czy tak moze byc?
Adrian Kaczmarek

Adrian Kaczmarek To czy człowiek jest
in­te­ligen­tny
poz­na­je się po
je­...

Temat: Prosty projekt bazy danych.

Zlecenia to są te same dane, gwarancyjne mają trochę więcej informacji to wystarczy dodać: zlecenie gwarancyjne z wskazaniem na tabele zlecenie (id zlecenia w gwarancyjnym)

Dlaczego tak?
Dajmy proste rozszerzenie funkcjonalności serwisu:
1. dodać zlecenia napraw na miejscu u klienta
2. Dodać wyszukiwarkę zleceń
3. Dodać statusy zleceń

Ad 1)
Dodajemy wtedy tabele z informacją np. termin wizyty u klienta, zamiast duplikować dane jeszcze raz.

Ad 2)
Każde rozszerzenie (z pkt 1) wymagałoby modyfikacji wyszukiwarki, a jak podstawowe info o zleceniach (i wszystkie zlecenia) będą leżeć w tabeli zlecenia to wyszukiwarkę robimy raz niezależnie od różnych typów zleceń

Ad 3)
Musiałbyś dodawać w dwóch tabelach. Tak to masz tylko jedno miejsce modyfikacji.

btw.
Oni naprawdę tego was uczą na studiach?
Marcin Mackiewicz

Marcin Mackiewicz Programista JAVA, RS
Adware Polska

Temat: Prosty projekt bazy danych.

Bledy:
1. Miasto i kod pocztowy sa od siebie zalezne. Nalezy zrobic odpowiedni slownik aby nie mnozyc ilosci danych.
2. Klient, pracownik to osoby. Pracownik (byly pracownik) tez moze byc klientem. Aby nie powielac danych trzeba zrobic tabele osoby ze slownikiem funkcji.
3. Brak rozroznienia na klienta - firme i klienta - osobe fizyczna. Nalezy dodac odpowiednia tabele
4. Serwis (jako firma) moze przyjmowac zarowno zlecenia gwarancyjne jak i pogwarancyjne.
5. Zlecenia powinny znajdowac sie w jednej tabeli ze slownikiem rodzajow zlecen
6. Produkty maja ten sam opis, zmieniaja sie tylko indywidualne dla sztuki cechy: Numer seryjny, data zakupu, ile gwarancji

Opis diagramu:
1. Wszystkie informacje o osobach (klientach i pracownikach) trzymasz w jednej tabeli
2. Osoby maja swoje kategorie (klient, pracownik, itp)
3. Jedna osoba moze pelnic kilka funkcji jednoczesnie
4. Dodajesz slownik kodow pocztowych i miasto rozpoznajesz na podstawie kodu pocztowego
5. Wszystkie informacje o firmach trzymasz w tabeli kontrahenci. Jezeli klientem jest osoba fizyczna to id_osoby_fizycznej jest uzupelnione
6. Firma oprocz siedziby moze miec wiele biur (id_oddzialu)
7. Kazde z biur oraz siedziba moze miec wlasnych pracownikow (kontrahenci_pracownicy)
8. Kontrahent moze byc klientem ale moze to byc serwis dlatego dodajemy slownik rodzajow kontrahentow (kontrahenci_funkcje)
9. Serwis moze tez czasami byc naszym klientem dlatego jeden kontrahent moze pelnic dowolna ilosc funkcji (kontrahent_funkcja)
10. Dodajemy liste produktow oraz liste produktow serwisowanych.
11. Dodajemy akcje do zlecenia:
Przyjecie - tworzone automatycznie on insert to zlecenia,
Naprawa na miejscu,
Wysylka do serwisu,
Odebranie z serwisu,
Oddanie do klienta
12. Dodanie statusow zlecen: Nowe, W naprawie, W serwisie, Do sprawdzenia, Po serwisie, Do odbioru, Odebrane, ZamknieteTen post został edytowany przez Autora dnia 02.12.13 o godzinie 00:31
Jacek Dunikowski

Jacek Dunikowski Front-end Developer

Temat: Prosty projekt bazy danych.

O kurde, Marcin wielkie dzieki, nawet znalazłeś czas żeby projekt zrobić, oczywiście nie oddam tej bazy w takiej formie , ale skorzystam z twoich rad i użyje kilka tabel które zapodałeś.

1. Miasto i kod pocztowy sa od siebie zalezne. Nalezy zrobic odpowiedni slownik aby nie mnozyc ilosci danych.

2. Klient, pracownik to osoby. Pracownik (byly pracownik) tez moze byc klientem. Aby nie powielac danych trzeba zrobic tabele osoby ze slownikiem funkcji.


Wiesz, to ma być prosta baza, twoja to profesjonalne podejscie do sprawy, oczywiscie masz racje ze byly pracownik moze byc klientem, ale też można podejść tak że jako były pracownik serwisu, sam może sobie naprawić/wymienić sprzęt/części :D

Podsumowując , dzięki jeszcze raz :)

Następna dyskusja:

Prosty projekt bazy danych




Wyślij zaproszenie do