Jak tworzyć w bazie hash'e jak YT ma np. watch?v=ncs0-7n_2kE, Unikalny hash generowany przez BD |
Jak tworzyć w bazie hash'e jak YT ma np. watch?v=ncs0-7n_2kE, Unikalny hash generowany przez BD |
4.01.2012, 18:10:35
Post
#1
|
|
Grupa: Zarejestrowani Postów: 42 Pomógł: 0 Dołączył: 30.10.2005 Skąd: Wrocław Ostrzeżenie: (0%) |
Cześć,
Czy wiecie może jak po stronie bazy (najlepiej w momencie dodawania INSERT'a) zrobić generowanie unikalnych hashów (które od razu będą unikalne dla danej kolumny oczywiście) coś w stylu jak ma YouTube, czyli np. watch?v=ncs0-7n_2kE Oczywiście nie szukam rozwiązań typu, że w PHP generuje sobie losowo znaki i wstawiam do BD i sprawdzam, czy jest unikalne. Z góry dzięki za pomoc. Ten post edytował erix 4.01.2012, 19:00:32
Powód edycji: [erix]: na przyszłość :P
|
|
|
4.01.2012, 18:58:32
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 006 Pomógł: 111 Dołączył: 23.07.2010 Skąd: Kraków Ostrzeżenie: (0%) |
Ale czcionka Musiałem odsunąć się od monitora.
Jak chcesz, aby DB robiło unikalne hashe to: 1. Dla dalej kolumny nadaj index UNIQUE. 2. Stwórz procedurę generującą losowe znaki 3. Napisz triggera, który przy dodawania rekordu wywoła wcześniejszą procedurę wstawiając dane do kolumny. Łatwiej to zrobisz w PHP + pkt 1 z powyższej listy. -------------------- |
|
|
4.01.2012, 19:02:35
Post
#3
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów |
Ktoś na forum już poruszał ten temat, ale nie pamiętam, jak go szukać.
W każdym razie, filozofia identyfikatorów na YT opiera się na chyba 48-znakowym systemie liczbowym. Co to jest system liczbowy, to już sobie znajdziesz. -------------------- ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW! |
|
|
9.01.2012, 18:33:44
Post
#4
|
|
Grupa: Zarejestrowani Postów: 42 Pomógł: 0 Dołączył: 30.10.2005 Skąd: Wrocław Ostrzeżenie: (0%) |
Ale czcionka Musiałem odsunąć się od monitora. Jak chcesz, aby DB robiło unikalne hashe to: 1. Dla dalej kolumny nadaj index UNIQUE. 2. Stwórz procedurę generującą losowe znaki 3. Napisz triggera, który przy dodawania rekordu wywoła wcześniejszą procedurę wstawiając dane do kolumny. Łatwiej to zrobisz w PHP + pkt 1 z powyższej listy. Pomysł z trigger'em jest fajny, ale jak wygenerować od razu jakiś ciąg znaków, żeby spełniał tego unika? Co w momencie kiedy trigger wygeneruje ciąg znaków, który już w bazie jest (naruszy unikalność). Zakładam, że kwerenda nie przejdzie. Jak w takim razie zadbać w triggerze o unikalność? Jak ją sprawdzić? |
|
|
26.03.2012, 09:48:42
Post
#5
|
|
Grupa: Zarejestrowani Postów: 26 Pomógł: 10 Dołączył: 17.03.2012 Ostrzeżenie: (0%) |
Sekwencją wypełniasz kolumnę - mechanizm dba o unikalność sam. Najlepiej gdy jest to id.
Podczas wyświetlania zmieniasz system dziesiętny na system o bazie 36, czy ile chcesz. Gdy chcesz wyszukać - po prostu w aplikacji zmieniasz z systemu o bazie 36 na klasyczny system dziesiętny. |
|
|
5.04.2012, 08:52:39
Post
#6
|
|
Grupa: Zarejestrowani Postów: 898 Pomógł: 80 Dołączył: 31.05.2008 Ostrzeżenie: (20%) |
Miałem ten sam pomysł co solificati, wg mnie jest b.dobry. Polecam, stosowałem go już.
-------------------- cojack blog - mój blog (na jakiś czas off).
"jak czegoś nie wiem, to nie myślę że wiem" - moja domena |
|
|
Wersja Lo-Fi | Aktualny czas: 24.04.2024 - 11:38 |