Darek1985
29.12.2007, 15:05:09
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
29.12.2007, 15:13:38
Zrób przynajmniej swój szkic, wypisz wszystkie tabele, pola. Wtedy pomożemy znaleźć błędy w projektowaniu, coś dodamy...
phpion
29.12.2007, 15:35:42
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
31.12.2007, 15:45:39
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
3.01.2008, 10:07:10
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
6.01.2008, 10:24:30
"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
12.01.2008, 13:52:52
proponuje odwiedzic jakis portal z aukcjami, i np. wedlug opcji szukaj zobacz jakie pola potrzebujesz jeszcze do swojej bazy danych

wedlug jakich bedziesz sortowac, ewentualnie wystawiał auckje.