Strona 1 z 2
Identyfikatory w Palatynacie Leocji
: 25 lis 2019, 9:45
autor: Helwetyk Romański
Naszą podstawową bazą danych jest baza danych forum. W kolejności rejestracji oznacza to, że identyfikatorami są: 2 (niżej podpisany), 48 (namiestnik Garamond), 49 (dowódca Koniew), 52 (redaktor Montserrat), 53 i 54 (przybysze
@Ksi i
@Luka Zoltic, dzień dobry!). Personalia czasami się zmieniają, identyfikatory — nie. Korzystając z faktu, że nasz serwis internetowy stoi na Wordpressie, chciałbym stosować tagi mieszkańców dla aktualności i stron tak, aby ułatwić dostęp do informacji. I teraz…
…teoretycznie możemy stosować czysto numeryczne tagi, ale są one (moim zdaniem) brzydkie. Możemy przyjąć numerację ciągłą typu L0053. Możemy też wybrać jakąś funkcję hashującą (
na przykład tę,
przykład dla #54), i dla każdego identyfikatora numerycznego generować czteroliterowy kod. Co, w ten piękny poniedziałek, poddaję pod rozwagę.
Identyfikatory w Palatynacie Leocji
: 25 lis 2019, 10:28
autor: Franklin Garamond
Wspaniały pomysł!
Identyfikatory w Palatynacie Leocji
: 26 lis 2019, 11:30
autor: Apolinary Montserrat
Bardzo interesująca jest ta funkcja z hashem.
Identyfikatory w Palatynacie Leocji
: 26 lis 2019, 12:02
autor: Helwetyk Romański
Taka tam zabawa z różnymi zestawami liter:
http://gov.leocja.org/serwisy/paszporty/ (w niektórych przypadkach hashe bywają dość niekulturalne…).
Identyfikatory w Palatynacie Leocji
: 26 lis 2019, 13:20
autor: George S. Patton
No nie wiem, nie wiem.
Tzn. rozumiem sam fakt, zgadzam się z nim, coś w rodzaju numeru PESEL by nam się przydało. Czy tam identyfikatora, jak to zwał, tak to zwał. W odniesieniu do bazy danych, najlepiej jest się jednak posługiwać zaindeksowanym intem. Oczywiście można też zaindeksowanym identyfikatorem. Jednak daje nam to dwa niezmienne numery - id, oraz identyfikator. Widzę w tym pewną niepotrzebną komplikację technologiczną.
Chyba, że zrezygnujemy z inta. Można.
Ja bym to jednak widział bardziej numerycznie. Np L to redundancja, ma to każdy. 4 litery to niecałe pół miliona kombinacji a w przypadku haszy, mogą się krzyżować. Może coś bardziej zbliżonego do PESEL z zakodowaną płcią, datą urodzenia na forum?
Identyfikatory w Palatynacie Leocji
: 26 lis 2019, 14:17
autor: Helwetyk Romański
Iwan Koniew pisze: ↑26 lis 2019, 13:20
Tzn. rozumiem sam fakt, zgadzam się z nim, coś w rodzaju numeru PESEL by nam się przydało. Czy tam identyfikatora, jak to zwał, tak to zwał. W odniesieniu do bazy danych, najlepiej jest się jednak posługiwać zaindeksowanym intem. Oczywiście można też zaindeksowanym identyfikatorem. Jednak daje nam to dwa niezmienne numery - id, oraz identyfikator. Widzę w tym pewną niepotrzebną komplikację technologiczną.
Chyba, że zrezygnujemy z inta. Można.
Z identyfikatora — liczby całkowitej — nie zrezygnujemy, opiera się na nim baza danych. Stąd moja propozycja (odwracalnego) hasha, żeby nie trzeba było wprowadzać jakichkolwiek nowych pól, gdziekolwiek, czegokolwiek dodatkowo indeksować. Ot, taka „nakładka”.
Iwan Koniew pisze: ↑26 lis 2019, 13:20
Np L to redundancja, ma to każdy. 4 litery to niecałe pół miliona kombinacji a w przypadku haszy, mogą się krzyżować. Może coś bardziej zbliżonego do PESEL z zakodowaną płcią, datą urodzenia na forum?
Przedrostek „L” dodałem pod kątem wizualnym. Ta funkcja podobno generuje unikalne hasze (jeżeli dobrze rozumiem uwagę o krzyżowaniu…). PESEL z zakodowaną datą byłby świetny, ale w tym przypadku już musielibyśmy gdzieś taki identyfikator zapisywać.
Identyfikatory w Palatynacie Leocji
: 27 lis 2019, 5:34
autor: George S. Patton
Dlatego właśnie piszę, że można zrezygnować z ID jako liczby całkowitej i użyć identyfikatora, tylko trzeba mu nadać indeks, niech sobie baza haszuje. I używać tylko tego identyfikatora. Akurat w naszym przypadku aż tak ta baza mielić nie będzie, żeby to miało zauważalne znaczenie.
A przy pół milionie kombinacji... Bym się wcale nie zapierał, że funkcja generuje unikalne hasze, tj. każda funkcja haszująca generuje unikalne hasze. Dla pewnego zakresu. Można by to nawet dosyć łatwo sprawdzić, generując hasze identyfikatorów od AAAA do YYYY i zobaczyć, czy się któryś powtórzy, czy nie. Założę się, że tak. Krzyżówki haszy to spory problem i nie ma funkcji idealnych.
Identyfikatory w Palatynacie Leocji
: 27 lis 2019, 9:32
autor: Helwetyk Romański
Iwan Koniew pisze: ↑27 lis 2019, 5:34
Dlatego właśnie piszę, że można zrezygnować z ID jako liczby całkowitej i użyć identyfikatora, tylko trzeba mu nadać indeks, niech sobie baza haszuje. I używać tylko tego identyfikatora. Akurat w naszym przypadku aż tak ta baza mielić nie będzie, żeby to miało zauważalne znaczenie.
Musielibyśmy ruszać silnik phpBB, a tego bardzo nie chcemy… chyba że każdy z nas tutaj pisze o czymś innym, czego zupełnie nie wykluczam? ;-)
Iwan Koniew pisze: ↑27 lis 2019, 5:34
A przy pół milionie kombinacji... Bym się wcale nie zapierał, że funkcja generuje unikalne hasze, tj. każda funkcja haszująca generuje unikalne hasze. Dla pewnego zakresu. Można by to nawet dosyć łatwo sprawdzić, generując hasze identyfikatorów od AAAA do YYYY i zobaczyć, czy się któryś powtórzy, czy nie. Założę się, że tak. Krzyżówki haszy to spory problem i nie ma funkcji idealnych.
Dokumentacja twierdzi, że hasze są unikalne — po przekroczeniu pewnego progu, dodawany jest kolejny znak (długość hasza jest, tak naprawdę, długością minimalną).
Identyfikatory w Palatynacie Leocji
: 27 lis 2019, 19:09
autor: George S. Patton
Ciekawe co to za próg i skąd się bierze. Gdyby hasze były krótsze od danych i unikalne, to można by ich używać do... nieskończonej kompresji :)
https://en.wikipedia.org/wiki/Pigeonhole_principle
Co do id, oczywiście używajmy forumowego, zapomniałem o nim :)
Identyfikatory w Palatynacie Leocji
: 27 lis 2019, 20:42
autor: Helwetyk Romański
Iwan Koniew pisze: ↑27 lis 2019, 19:09
Ciekawe co to za próg i skąd się bierze. Gdyby hasze były krótsze od danych i unikalne, to można by ich używać do... nieskończonej kompresji :)
Analizy kodu się z całą pewnością nie podejmę, zgodnie z zasadą, że „skoro działa, na co drążyć temat”. W przypadku alfabetu, który roboczo założyłem: „ABCDEFGHIKLMNOPRSTUWYZ” (22 znaki, tylko wielkie litery), piąty znak pojawia się już przy identyfikatorze 2197. Wyraźnie gorzej niż by to wynikało z samej liczby kombinacji 22^4, ale w zestawie mamy odwracalność funkcji.
Oczywiście, na pewno moglibyśmy napisać coś własnego, ale czy warto poświęcać na to czas…?