Czy znasz koncepcję pary klucz / wartość? Zakładając, że znasz Java lub C #, jest to w języku map / hash / datatable / KeyValuePair (ostatnia jest w przypadku C #)
Sposób działania pokazano na poniższym przykładowym wykresie:
Color Red
Age 18
Size Large
Name Smith
Title The Brown Dog
Jeśli masz klucz (po lewej) i wartość (po prawej) ... zauważ, że może to być ciąg, int lub tym podobne. Większość obiektów KVP pozwala przechowywać dowolny obiekt po prawej stronie, ponieważ jest to tylko wartość.
Ponieważ zawsze będziesz mieć unikalny klucz do konkretnego obiektu, który chcesz zwrócić, możesz po prostu zapytać bazę danych o ten unikalny klucz i uzyskać wyniki z dowolnego węzła, który ma obiekt (dlatego jest dobry dla systemów rozproszonych, ponieważ istnieją inne rzeczy, takie jak odpytywanie dla pierwszych n węzłów, aby zwrócić wartość pasującą do zwrotów innych węzłów).
Teraz mój przykład powyżej jest bardzo prosty, więc oto nieco lepsza wersja KVP
user1923_color Red
user1923_age 18
user3371_color Blue
user4344_color Brackish
user1923_height 6' 0"
user3371_age 34
Jak widać, proste generowanie klucza polega na umieszczeniu „użytkownika” unikalnego numeru użytkownika, znaku podkreślenia i obiektu. Ponownie, jest to prosta odmiana, ale myślę, że zaczynamy rozumieć, że dopóki możemy zdefiniować część po lewej stronie i konsekwentnie ją sformatować, możemy wyciągnąć wartość.
Zauważ, że nie ma ograniczeń co do wartości klucza (ok, mogą istnieć pewne ograniczenia, takie jak tylko tekst) lub właściwości value (mogą istnieć ograniczenia rozmiaru), ale jak dotąd nie miałem naprawdę złożonych systemów. Spróbujmy pójść trochę dalej:
app_setting_width 450
user1923_color Red
user1923_age 18
user3371_color Blue
user4344_color Brackish
user1923_height 6' 0"
user3371_age 34
error_msg_457 There is no file %1 here
error_message_1 There is no user with %1 name
1923_name Jim
user1923_name Jim Smith
user1923_lname Smith
Application_Installed true
log_errors 1
install_path C:\Windows\System32\Restricted
ServerName localhost
test test
test1 test
test123 Brackish
devonly
wonderwoman
value key
Wpadłeś na pomysł ... wszystkie te byłyby przechowywane w jednej ogromnej „tabeli” w rozproszonych węzłach (za tym wszystkim kryje się matematyka) i po prostu zapytałeś system rozproszony o wartość, której potrzebujesz według nazwy.
Przynajmniej tak rozumiem, jak to wszystko działa. Mogę mieć kilka rzeczy źle, ale to są podstawy.
obowiązkowy link do Wikipedii http://en.wikipedia.org/wiki/Associative_array