[MySQL] Jakie typy kluczy wybrac - tworzenie bazy

0

Mam takie problem: mam zrobic taki niby bank. Klienta bede identyfikowal przez PESEL, ale jak mam go przechowywqc w bazie? Jako CHAR(11) czy jako BIGINT(11)? To samo z numerem konta - ma az 26 znakow, a numer karty ma 16.
Jesli mam przechowywac w CHAR, to jesli klient bedzie mial klucz obcy do konta, to mam to miec do PRIMARY KEY konta (CHAR(26)) czy niekoniecznie? Jesli do primary key, to bede dublowal ciag CHAR(26) :-( Podobnie rzecz ma sie z powiazaniem karty i konta.
Prosze pomozcie mi jak rozwiazac ta baze bo nie znam sie na tym, a bez tego ani rusz :-(

0

Ja też się nie znam ale na Twoim miejscu bym zrobił osobny identyfikator liczbowy (np. po to żeby nie ujawniać pesela w adresie uzytkownik.html?id=70121201234) a pesel przechowywać tekstowo (bo jako liczba ci do niczego nie potrzebny) w kolumnie o ograniczeniach NOT NULL i UNIQUE.

0

A co z numerem konta? Tez mam uzywac int jako primary key, i podac unique do numeru? Tylko jak pozniejj mam okreslac czy numer ktory chce wpisac jest unique nie strzelajac?
Co do adresu i peselu - wcale nie musi tu nigdzie byc metody get, moze byc post, i problem adresu znika.

0

A co z numerem konta? Tez mam uzywac int jako primary key, i podac unique do numeru? Tylko jak pozniejj mam okreslac czy numer ktory chce wpisac jest unique nie strzelajac?
Nie rozumiem. Skąd będziesz wiedział, że nie tworzysz konta o takim samym numerze? Albo sprawdzasz wcześniej, albo próbujesz zapisać i przechwytujesz ewentualny wyjątek.

Co do adresu i peselu - wcale nie musi tu nigdzie byc metody get, moze byc post, i problem adresu znika.
Link metodą POST? :)
Wcześniej podałem tylko przykład bo nie wiem jak będzie wyglądała Twoja aplikacja.

0

No ale w takim razie dodawanie nowego numeru konta bedzie sie ograniczac do strzelania numeru i przechwytywania wyjatkow w petli.

Co do metody POST i linka - czy ja gdziekolwiek podawalem ze chce podawac jakies linki z parametrami?

0

Hmm... Ale nie widzę celu zapisywania Peselu w formie ciągu znaków (alias. tekstu). Przecież w ten sposób tylko zajmie więcej miejsca w bazie danych... Po to są zmienne typu liczbowego, by liczby w nich przechowywać...

0

Zatem kwestia peselu rozwiazana, ale co z numerami karty i konta? Smiesznie by wygladalo np konto o numerze 1 czy 3. To samo z karta. Dzieki za odzew.

0

Hmm... To przykładowo jak masz numer karty przynajmniej 10-cyfrowy, to porównujesz z 10^9 i sprawdzasz, czy większa. Jeśli nie, oznacza, że masz mniej cyfr. Ewentualnie Ceil(Ln(numer)/Ln(10)) będzie ilością cyfr, ale to chyba kombinowanie :)

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