![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 17.09.2009 Ostrzeżenie: (0%) ![]() ![]() |
Chcę ukryć prawdziwe ID rekordu - wymyśliłem, żeby generować jakiś losowy ciąg znaków i wrzucać go do wiersza, a następnie posługiwać się nim podczas wybierania odpowiedniego wiersza. Co w przypadku kiedy wygeneruje mi się taki który jest już w bazie? Sprawdzać czy insert wykonał się prawidłowo, jeśli nie to generować jeszcze raz random i znowu insert?
Macie może jakiś inny pomysł? |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 39 Pomógł: 4 Dołączył: 4.01.2010 Ostrzeżenie: (0%) ![]() ![]() |
A po co chcesz ukrywać ID rekordu z bazy danych?
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 17.09.2009 Ostrzeżenie: (0%) ![]() ![]() |
Np. po to żeby nie było widać ile jest użytkowników w systemie, żeby nie było widać które id ma faktura itd. itp.
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 39 Pomógł: 4 Dołączył: 4.01.2010 Ostrzeżenie: (0%) ![]() ![]() |
Pobierasz sobie ID. Potem za pomocą random() dajesz jakiś ciąg znaków i dodajesz do bazy do nowego pola dla tego ID oryginalnego. Po wygenerowaniu random() sprawdzasz czy taki klucz przypadkiem istnieje w bazie. Jeśli tak to generujesz nowy i wstawiasz. Na podstawie nowego,tymczasowegi ID operujesz sobie. Potem jak już skończysz to zawsze możesz usunąć tymczasowy ID z bazy.
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Przekombinowałeś. Po prostu użyj pola CHAR(8), które będzie kluczem głównym. Jego tworzenie może wyglądać chociażby tak:
Sprawdzanie czy takie ID jest w bazie to po prostu: Jeżeli zwróci 1 to trzeba wygenerować nowy klucz i ponownie sprawdzić czy taki już nie jest użyty. |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 17.09.2009 Ostrzeżenie: (0%) ![]() ![]() |
Opisałeś mój sposób który mi się nie podoba, np. pętla która sprawdza czy taki klucz już jest w bazie - to chyba nie jest najlepsze rozwiązanie. Podobne rozwiązanie to np. pole z tym kluczem zrobić unikalne i sprawdzać czy insert się udał, jak nie to znowu wygenerować ... to prosta sprawa. Mi chodzi o to, że nie bardzo podoba mi się ten sposób i może ktoś zna coś lepszego.
Ten post edytował dizor 20.02.2010, 14:55:25 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 29.06.2025 - 21:14 |