Transakcje MySQL

0

Witam, mam pytanko odnośnie transakcji MySQL. Piszę dość sporą aplikację skierowaną pod duży ruch. W związku z tym mam pytania. Rejestruję płatności użytkowników, wymyśliłem sobie identyfikator płatności w postaci czasu płatności, id użytkownika i metody płatności.

Czy istnieje w jakiś sposób zdublowanie takiego identyfikatora przy dużym ruchu? Albo zdublowanie id przy AUTOINCREMENT?

0

Nie wiem o co chodzi, ale jeśli to będzie PK to nie. :)

0

Już tłumaczę. Identyfikator płatności, który musi być unikalny będzie wyglądał tak: hash('sha256', time().$id_user.$methodOfPayment)

Czy istnieje możliwość zduplikowania takiego identyfikatora? Czy jest szansa, że dwie osoby zaczną transakcje w tym samym czasie? Co mają do tego transakcje w PDO? Czy to jest zabezpieczenie?

@fourfour: Co to jest PK? :)

0

Nie ma lekko, musisz strawić i poszukać dalej, pozycja wyjściowa to http://pl.wikipedia.org/wiki/Klucz_g%C5%82%C3%B3wny :)

0

time() nie zapewnia unikalności (microtime() też nie jakby ktoś pytał).

no i uniqid też nie - korzysta z microtime()

0

Lepiej dać klucz podstawowy i unikalny na ten identyfikator, czy może primary_key na id AUTOINCREMENT a unique_key na sam wygenerowany kod z microtime?

0
tengo_kematare napisał(a):

unique_key na sam wygenerowany kod z microtime?

A co ma być tak naprawdę unikatowe w tej tabeli? :)

0

Unikatowy ma być identyfikator płatności.

0

No to zrób z niego PK, jeśli ma być tak, jak mówisz.

0

To tak zrobię, dzięki wielkie!

0
fourfour napisał(a):

No to zrób z niego PK, jeśli ma być tak, jak mówisz.

Po co? PK nie służy do zapewnienia unikalności, bo chociaż to umożliwia (bo dane w PK muszą być unikalne) robi przy okazji kilka innych rzeczy.
Do zapewnienia unikalności służy indeks unikalny.

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