Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Projekt Bazy danych
Forum PHP.pl > Forum > Bazy danych
Darek1985
Witam.Mam do wykonania prosty system aukcyjny który ma zawierać funkcjonalności:
-rejestracja użytkowników(występują tu takie pola jak login,hasło,imię,nazwisko,miejsce zamieszkania,telefon)
-logowanie użytkowników(2 grupy użytkowników-admin oraz aukcjonariusz )
-wysyłanie prywatnych wiadomości pomiędzy użytkownikami oraz możliwości komunikowania się na trasie-admin-aukcjonariusz
-po zalogowaniu aukcjonariusz ma mieć dostęp do panelu gdzie może wystawić przedmiot na licytację ,może jednocześnie
zobaczyć swoje wystawione przedmioty i.t.d

Zastanawiam się jakie tabele będą tu potrzebne jedna podstawowa to napewno
tabela

users(zastanawiam się jaki dać klucz podstawowy,na początku aby dać user_id który będzie incrementowany,lecz z drugiej strony sam login mógłby być już kluczem podstawowym ponieważ login jest wartością unikalną(w moim systemie nie będzie 2 takich samych logine'ów,myślę również czy kluczem podstawowym nie zrobić pola mail-gdzie jeden użytkownik będzie mógł być przypisany do jednego adresu.

Jak byście widzieli wszystkie tabele takiego systemu,może jakieś propozycje.
grzesiek_g
Zrób przynajmniej swój szkic, wypisz wszystkie tabele, pola. Wtedy pomożemy znaleźć błędy w projektowaniu, coś dodamy...
phpion
Cytat(Darek1985 @ 29.12.2007, 17:05:09 ) *
users(zastanawiam się jaki dać klucz podstawowy,na początku aby dać user_id który będzie incrementowany,lecz z drugiej strony sam login mógłby być już kluczem podstawowym ponieważ login jest wartością unikalną(w moim systemie nie będzie 2 takich samych logine'ów,myślę również czy kluczem podstawowym nie zrobić pola mail-gdzie jeden użytkownik będzie mógł być przypisany do jednego adresu.

Ja jestem zwolennikiem tworzenia identyfikatorów liczbowych. Lepiej mi na nich operować np. przy złączeniach tabel.
Darek1985
Narazie jestem ne etapie tworzenia schematu bazy.Dotąd udało mi się wykombinować coś takiego

Users(UserId,Login,Pass,Imie,Nazwisko,Adres,Tel,Grupa,Mail)

W tabeli Users będą wszelkie dane potrzebne do indentyfikacji oraz kontaktu z danym użytkownikiem.Tak jak polecaliście Klucz podstawoy został utworzony jako cyfra

Priv_Mess(MessId,UserId,Text)

Ta tabela została utworzona do wysyłania prywatnych wiadomości pomiędzy użytkownikami.Nie wiem czy dobrze myślę,Generalnie każdy użytkownik miałby coś w rodzaju własnej skrzynki z wiadomościami prywatnymi.MessId byłby cyfrą która odzwiecierdlałaby konkretną wiadomość i to MessId byłby kluczem podstawowym,a UserId kluczem obcym który przypisywałby wiadomości do danego użytkownika,Text to treść danej wiadomości.Od kogo będzie pochodzić dana wiadomość chciałbym pobierać już z tabeli Users aby nie powielać pól w kilku miejscach.

Czy dobrze myślę-czy ta się to tak zrobić-wszelkie sugestie mile widziane.

Aukcja(AukcjaId,UserID,Nazwa_Przedm,Photo,Ilosc,Opis,Cena_Min)

i tu nawiększe problemu

kluczem podstawowym jest AukcjaId każda aukcja ma osobny identyfikator.UserId przypisuje kto jest właścicielem aukcji,

Nazwa_Przedm to n.p. sprzedam super gre komputerową w niskiej cenie.

Photo to zdjęcie danego przedmiotu.

Ilosc to Ilosc przedmiotów wystawianych na aukcje.

Opis to opis produktu wystawianego na aukcje

Cena_Min to cena poniżej której aukcja nie zostanie zrealziowana.

Myślę jak jednak przydzielać konkretnych użytkowników do danej aukcji,User_Id to właściciel danej aukcji,więć UserId nie pomoże posłużyć się dopisywaniem kilku użytkowników do danej aukcji.Macxie na to jakiś pomysł? chodzi o to aby kilku użytkowników mogło licytować dany przedmiot -daną aukcję,czy zrobić osobną tabelę w tym przypadku?.



Po przeróbkach




Po głębszych przemyśleniach doszłem do wniosku iż schemat bazy będzie wyglądał następująco

Users(UserId,Login,Pass,Imie,Nazwisko,Adres,Tel,Grupa,Mail) UserId klucz podstawowy tabeli Users

Priv_Mess(MessId,UserId,Text,Status) MessId klucz podstawowy UserId klucz obcy

Aukcja(AukcjaId,UserID,Nazwa_Przedm,Photo,Ilosc,Opis,Cena_Min,Kategoria) AukcjeId klucz podstawowy

aukcjeuuser(ID, AukcjaID, UserId, Cena) tutaj coś w rodzaju relacji wiele do wiele co jeszcze widzielibyście w takim projekcie jak wiadomo to dopiero początek tego projektu,czy ten shecmat jest dobrze?co byście jescze dodali.

Jak byście widzieli diagram encji tego projektu
prond
Na pewno private_messages sa zle:
- jest tylko jeden user_id, a powinno byc cos ala from_user_id, to_user_id,
- wysylajac wiadomosc najlepiej tworzyc dla niej 2 rekordy - jeden z flaga 'inbox' drugi 'outbox'.
wkrugiolka
"wysylajac wiadomosc najlepiej tworzyc dla niej 2 rekordy - jeden z flaga 'inbox' drugi 'outbox'"

Pozwole sobie sie z Toba nie zgodzic :-)
Po co mnozyc wiadomosci?
Wiadomo ze bedzie ich bardzo duzo a jak ma byc ich 2 razy tyle to juz bardzo duzo.

Jesli myslisz o usuwaniu wiadomosci przez poszczegolnych userow to mozna to zalatwic flagami.
Chyba ze masz za tym rozwiazaniem inne argumenty :-)


Pozdro, Wojtas
suchy1
proponuje odwiedzic jakis portal z aukcjami, i np. wedlug opcji szukaj zobacz jakie pola potrzebujesz jeszcze do swojej bazy danych party.gif wedlug jakich bedziesz sortowac, ewentualnie wystawiał auckje.
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.
Invision Power Board © 2001-2025 Invision Power Services, Inc.