2007-01 Unikalne Identyfikatory

Wstęp i krótko o czym to jest.

Mam pomysł na unikalne identyfikatory w obrębie jednego użytkownika do stosowania w adresach URL.
Proponuję aby były to kody czteroznakowe… opis poniżej.

W skrócie można powiedzieć że jest to o tym że zapis : bc11 , oznacza :

Znaczenie zapisu bc11
b 2011 rok (b w hex to 11)
c 12 miesiąc=grudzień (c w hex to 12)
11 17nasta notatka w tym miesiącu
(11 w hex to 17 w dziesiętnym)

Dla zainteresowanych szczegułami zapraszam do dalszej lektóry.

Opis kodowania

Kod ma postać RMNN .

R rok
M miesiąc
NN kolejny unikatowy numer
w danym miesiącu

Przy czym Wszystkie elementy kodujemy zgodnie z przyjętym kodowaniem liczb. .

Kodowanie liczb

Hmmm…
spójrzmy więc co mamy do dyspozycji (tab. Znaki do dyspozycji)

znaki ile ich mamy
0-9 10
a-z 26
A-Z 26

tab. Znaki do dyspozycji

Do url-i.
Najlepiej zastosować te z tabelki, bo inne mogą się zamieniać w adresie url na %xx np (" " na %20 ) a wtedy adres się wydłuża.
Najpierw dokonam przyporządkowania - kodowania liczby. (patrz tab. "kodowanie liczb") .
Unikam dużych znaków aby uniknąć pomyłek co do wielkości znaku w adresie. W razie potrzeby można poszerzyć skalę o duże litery reprezentujące odpowiednio:

47 A
63 Z
liczba Jaki znak
0 0
9 9
10 a
36 z

tab. Kodowanie liczb

Więc proponuję zastosować kody cztero znakowe.
Są one wystarczające dla większości uzytkowników, gdyż pozwalają na oznakowanie unikatowo 262 = 676 wiadomości. A jakby im było mało można poszeszyć tę skalę przy zastosowaniu dużych znaków dla dalszych postów co daje górny limit 632 = 3969 miesięcznie.

Reprezentacja na dysku

Pomysły są dwa. :

Oparta na strukturze katalogowej


Tłumaczenie kodów na URL jest zapisywane w plikach postaci

KOD1 URL1
KOD2 URL2
...
KODn URLn

Aby uniknać dużego obciążenia systemu można dokonać podziału na strukturę plików /R/M.txt . Gdzie R oznacza literę kodującą rok, a M nazwę pliku oznaczającą miesiąc wpisu. W takim pliku powinny się znajdować wpisy z danego miesiące.

Oparta na indexie


Można też dokonać innego podziału.
T.j. jeden duży plik ze wszystkimi KODami. I drugi mniejszy plik z mapowaniem kodów.
Struktura pliku z mapowaniem mogłaby być następująca : ( -> poprzez offset rozumiemy położenie w pliku wyrażone w B zwykle w pliku z indeksem , chyba że zaznaczono inaczej)

BEGIN R

R0 - offset
R1 - offset

Rn - offset
END

BEGIN R0
M0 - offset
M1 - offset

END


BEGIN R0M0
NN0 - offset w pliku z danymi
NN1 - offset w pliku z danum

NN …
END
[[/code]]

O ile nie zaznaczono inaczej, treść tej strony objęta jest licencją Creative Commons Attribution-ShareAlike 3.0 License