Normalizacja bazy danych z jednej tabeli na kilka realacyjnych

0

Witam wszystkich,

Nie wiem za bardzo jak sie za to zabrać . Podam przykład - DANE SA WYGENEROWANE - nie pochodzą z bazy !

Mam table, kóra zawiera dane - nie sa wszedzie zapełnione ( np. brakuje pesel przy wielu klientach), ale za to sa zdublowane lub np w nr. rejestacyjnym jest cos innego niz nr rejestracyjny.

przykładowe dane:

numer | imie | nazwisko | pesel | adres | telefon | nr rejestracyjny | rodzaj polisy | nr polisy | od | do
screenshot-20211128150546.png![screenshot-20211128150036.png]

Chaiłbym to rozbic na klika tabele

tabela polisy
id | numer polisy | klient | nr polisy | od | do

klienci
Id| imie | nazwisko | adres | telefon

pojazdy
id | typ | klient | nr rej

itd.

Pytanie jakim zapytniem zrobić aby dodać nową klumnę ( np _ id_klenta) np
screenshot-20211128151808.png

Pozdrawiam

0

Nie mam zielonego pojęcia o co pytasz

1
ALTER TABLE klienci ADD COLUMN klient_id INT(11) NOT NULL PRIMARY KEY AUTO_INCREMENT FIRST;

ALTER TABLE klienci do tabeli klienci
ADD COLUMN klient_id dodaj kolumnę klient_id
INT(11) o typie INT(11)
NOT NULL niepustą
PRIMARY KEY zrób ją kluczem głównym
AUTO_INCREMENT i zrób, żeby była automatycznie zwiększana o 1 przy dodaniu nowego rekordu
FIRST dodaj ją na początku tabeli

0

Boshe XXI wiek a oni ciągle myślą tabelkami...

numer | imie | nazwisko | pesel | adres | telefon | nr rejestracyjny | rodzaj polisy | nr polisy | od | do

POLISA - czyli ubezpieczenie. Tam masz m.in.: typ, zakres, od-do, ubezpieczający, ubezpieczony, dane pojazdu,
POJAZD - numer rejestracyjny, model, marka, rok produkcji itd.
UBEZPIECZAJĄCY i UBEZPIECZONY (pewnie oddzielnie): imię i nazwisko, pesel, data urodzenia, rok uzyskania pj, dane kontaktowe

Tak bym to widział. Odwzoruje to trochę system do przetwarzania ubezpieczeń. Każdy z nich ma w sobie jeszcze jakieś bardziej złożone byty oczywiście.

0
.andy napisał(a):

Boshe XXI wiek a oni ciągle myślą tabelkami...

numer | imie | nazwisko | pesel | adres | telefon | nr rejestracyjny | rodzaj polisy | nr polisy | od | do

POLISA - czyli ubezpieczenie. Tam masz m.in.: typ, zakres, od-do, ubezpieczający, ubezpieczony, dane pojazdu,
POJAZD - numer rejestracyjny, model, marka, rok produkcji itd.
UBEZPIECZAJĄCY i UBEZPIECZONY (pewnie oddzielnie): imię i nazwisko, pesel, data urodzenia, rok uzyskania pj, dane kontaktowe

Tak bym to widział. Odwzoruje to trochę system do przetwarzania ubezpieczeń. Każdy z nich ma w sobie jeszcze jakieś bardziej złożone byty oczywiście.

Otrzymałem taki plik danych w exelu o takich kolumnach j/w, zaimporowałem go do mysql i próbuje ją rozbić na klika tabel i docelowo uporządkować tak jak mówisz aby móc zachować relacje ,

abrakadaber napisał(a):
> ALTER TABLE klienci ADD COLUMN klient_id INT(11) NOT NULL PRIMARY KEY AUTO_INCREMENT FIRST;
> 
> ```
> 
> `ALTER TABLE klienci` do tabeli `klienci`
> `ADD COLUMN klient_id` dodaj kolumnę `klient_id`
> `INT(11)` o typie `INT(11)`
> `NOT NULL` niepustą
> `PRIMARY KEY` zrób ją kluczem głównym
> `AUTO_INCREMENT` i zrób, żeby była automatycznie zwiększana o 1 przy dodaniu nowego rekordu
> `FIRST` dodaj ją na początku tabeli

Dzięki za strukture tabeli klienci, ale na razie potrzebuje te dane jakoś uprządkować,

Póbowałem 
`SELECT DISTINCT imie, nazwisko, pesel FROM polisy GROUP BY pesel 
`
ale to nie rozwiazuje problemu, bo jezeli jest klika rekorów z pustym peselem to wyswietli tylko jeden, 
a potrzebuje utowrzyć unikalne id dla kazdego niepowtarzealnego klienta w bazie

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