W dniu 12.04.2012 11:30, Skiba Marek napisał(a):
W dniu 12 kwietnia 2012 11:26 użytkownik A.L.E.C alec@alec.pl napisał:
No chyba że idziemy jeszcze dalej z normalizacją i telefony, maile, komunikatory, wszystko wywalamy do osobnej tabeli (customercontactdata), a w customercontacts zostają tylko dane osoby-kontaktu (imie/nazwisko, opis, typ np. reprezentant) i do osoby-kontaktu doczepiamy dowolną ilość z customercontactdata.
Tak byłoby chyba najporządniej zrobione. Najwięcej roboty też niby, ale myślę że warto.
Konkretnie:
customercontacts: id integer, customerid integer, REFERENCES customers (id) ON DELETE CASCADE ON UPDATE CASCADE, name varchar(255), -- imie nazwisko comment varchar(255), -- opis, krótka notatka o kontakcie type smallint -- 1 reprezentant, 0 nie reprezentant
customercontactdata: contactid integer REFERENCES customercontacts (id) ON DELETE CASCADE ON UPDATE CASCADE, value varchar(255), -- adres e-mail, numer telefonu zalezne od typu type smallint
Coś takiego? Przy takim schemacie będzie więcej klikania w samym UI, bo niby większość klientów to osoby prywatne gdzie zazwyczaj jest jeden/dwa telefony, jeden e-mail, ale przy większych firmach będzie można sobie ładniej poukładać dane.
Jeśli chcemy mieć bardzo uniwersalnie to zapewne tak - wtedy od strony kontaktów mierzymy od razu w miniCRM ;-) Czy będzie więcej klikania - to zależy od tego czy wykorzystamy dobrze Javascript i Ajax. Wcale nie musi być tak dużo klikania wbrew pozorom.