Zapis tabeli z danymi do bazy danych MysQl

0

Cześć. Rozwijam swoje oprogramowanie do obsługi multiagencji ubezpieczeniowej. Aktualnie to miniCRM posiadający Polisy i Klientów.
Chciałbym także zapisywać w nim przygotowane oferty dla Klientów. Z tym że jesteśmy multiagencją i oferty są przeróżne, przykładowe oferty:

screenshot-20191210165038.png

screenshot-20191210165117.png

Wiem że muszę mieć listę towarzystw (co fakt lista towarzystw też się zmienia, ale mogą po prostu zostawać puste), ale w tym miejscu się zacinam, nie wiem jak się zabrać. Tworzenie przy każdej ofercie nowej tabeli po miesiącu zrobi taki bałagan że nie dojdę do tego przez rok. Czy istnieje możliwość zapisu takich ofert w jednej bazie oferty ? Dobrze jakby cała tabela była jednym rekordem, aby dopisać id Klienta i użytkownika tworzącego ofertę.

Będę wdzięczny za przykłady zapisu do bazy i przykład wyświetlenia takiego wyniku.

0

No pokazałeś tylko 2 rodzaje, to spokojnie można użyć Class Table Inheritance. Dostaniesz 3 tabelki - jedną wspólną i po jednej na każdy rodzaj.

Ale jeśli tego jest więcej, to może coś takiego:
Tabelka z typem: id, typ (typ to np. uwagi, OCC, ...)
Tabelka z danymi: id, towarzystwo_id, typ_id, wartość

1

Robisz tabele: ubezpieczyciele, użytkownicy, klienci, oferty. W zależności od tego co potrzebne tabele mają odpowiednie kolumny.
W tabeli oferty tworząc nową ofertę wpisujesz id użytkownika, id ubezpieczyciela, id klienta, jakieś dane oferty.

0

Właśnie nagłówki też się zmieniają, mogą to być produkty np. OC działalności, Travel, itp.

Chodzi o to że cała tabelka musi zostać przypisana do jednej oferty.

Myślałem żeby dać np. Tabele dla każdego towarzystwa i np:
Tabela PZU:
id_oferty; wartość OC, wartość AC; wartość Pakiet; Wartość pojazdu; uwagi

Ale tych produktów jest niezliczona ilość, bo mogą być różne warianty itp.

1

Najprościej mieć tabelę z towarzystwami, a w tabeli ofert przechowywać tylko id towarzystwa. wtedy np. moższ dodać znacznik, czy agencja nadal wspólpracuje z TU i pozwalać wybierać tylko aktywne.
Same oferty rozdzieliłbym na nagłowek, w którym przechowujesz dane np. kto i komu wystawił oraz pozycje.
Nie znam specyfiki agencji ubezpieczeniowych, ale można w nagłówku zrobić typ oferty, w pozycjach mieć kilka kolumn z kwotami + dodatkowo konfiguracje co kwoty oznaczaja dla danego typu.
Posiłkując się tym co wstawiłeś

TU

id nazwa
1 PZU
2 AXA

Oferta

id typ pracownik idKlienta
1 samochod pracownik1 258
2 OC pracownik2 25

OfertaPozycje

id | idOferty | idTU | kwota1 | kwota2 | kwota3 | uwagi
---------------- | ------------------- | ------------------- | ------------------- | ------------------- | -------------------
1 | 1 | 1 | 1000 | 2000 | 100000 | bez ASS
2 | 1 | 4 | 1000 | 2000 | 100500 |
3 | 1 | 6 | 1000 | 2000 | 110000 | bez ASS
4 | 2 | 1 | 1000 | null | null | bez ASS
5 | 2 | 2 | 1000 | null | null |

konfig

id typ kwota nazwa
1 samochod kwota1 samo OC
2 samochod kwota2 pakiet
3 samochod kwota3 wartość pojazdu
4 oc kwota1 OC+NNW

To luźna koncepcja, chciałem tylko wskazać kierunek i pokazać, że nie trzeba tworzyć mnóstwa tabel do trzymania ofert

0

Panczo, dzięki za propozycję. Najtrafniej nakierowała mnie na rozwiązanie :)
Postanowiłem zrobić:
Oferty:

Idoferty Idpracownika Idklienta data przedmiot
1 5 6 2019-02-02 samochód VW

Propozycje:

Idpropozycji | idoferty | nazwa | PZU | Warta | Allianz | HDI
---------------- | ------------------- | -------------- | ------------ | ------------ | ------------
1 | 1 | OC + AC + NNW | 1500 zł | 1200 zł | 1800 zł | 990 zł
2 | 1 | OC | 800 zł | 700 zł | 550 zł | 100 zł
3 | 1 | Wartość | 15000| 15400 zł | 14000 zł | 13000 zł

Teraz tylko muszą grubo pomyśleć o backendzie i froncie do zapisywania, edytowania i wyświetlania tego. Co fakt, ilość towarzystw będzie stała, ale chyba najłatwiejsze rozwiązanie.

0

Nie jestem przekonany co do trzymania w kolumnach TW, bo jak dojdzie nowe to będziesz musiał zmieniać strukturę. Skupilbym się raczej jak to opisać bez zmieniania struktury

0

Panczo, co fakt masz rację że dobrze zrobić tabelę z towarzystwami. Postanowiłem zastosować takie rozwiązanie:
Tabela oferty:
idoferta | idklient | iduser| przedmiot | datautworzenia

Tabela propozycje:
idpropozycji | ifoferta | idtowarzystwa | nazwa | dane

Tabela towarzystwa
idtowarzystwa | nazwa

Wygląda na najlepiej wybrane rozwiązanie dotyczące mysql. Ale nawet nie mam pojęcia jak to ugryźć przy dodawaniu do bazy. Chciałbym aby wygląd był następujący:
Pole rodzaj (text) z przyciskiem dodaj kolejny. "OC", "OC + AC", "uwagi" :
Pole Towarzystwo, gdzie po wyborze towarzystwa dodaje się do tabelki

Generuje się tabelka z polami formularza

--- OC OC+AC uwagi
PZU kwota1 kwota2 text1
Generali kwota3 kwota4 text2

wtedy do bazy zapisuje się w ofertach:
10 | 1 | samochód | 1| data dziś

w propozycjach:
1 | 10 | 1 | OC | kwota1
2 | 10 | 1 | OC + AC | kwota2
3 | 10 | 1 | uwagi | text1
4 | 10 | 2 | OC | kwota3
5 | 10 | 2 | OC + AC | kwota4
6 | 10 | 2 | uwagi | text2

inny przykład;
wpisujemy rodzaje: podróż i uwagi
wybrane towarzystwa generali, warta i pzu

--- podróż uwagi
Generali kwota1 text1
Warta kwota2 text2
PZU kwota3 text3

Myślałem o dynamicznych formularzach z js, ale widziałem że one dodają tylko kolejne wierze gdzie mamy kolumny zdefiniowane, a tutaj kolumny są zależne od wprowadzonych rodzai. Jakieś propozycje? Jak to ugryźć ?

0

Jakbyś trzymał sie mojego przykładu byloby prościej, bo wtedy masz jedną strukturę tabeli do zapisu pozycji, zmieniają sie tylko nagłówki i ukrywane są kolumny.

Ja nie jestem frontendowcem, wiec nie podpowiem, jak to zrobić, proponuje założyć nowy wątek, jak to ogarnąć w PHP/JS, wtedy masz wieksze szanse, że ktoś rozwiąże Twój problem.

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