Id na podstawie stringa

Id na podstawie stringa
HE
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Kraków
  • Postów: 233
0

Potrzebuje na podstawie Stringa utworzyć Id. Jakieś pomysły? Md5 odpada bo tym id musi być Integer, i powinno być ustalane casesensitive.

PI
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2787
0

A czy jest to w ogóle potrzebne? W bazie danych primary key nie musi być intem

HE
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Kraków
  • Postów: 233
0

Ale to nie będzie zapisywane do bazy... a musi być intem bo mi jest taki potrzebny do dalszych działań.

PI
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2787
0

Zawsze możesz użyć hashCode ;) jeśli będziesz mieć te same stringi, to string pool zapewni, że będą to referencje do tego samego obiektu więc hashCode też będzie taki sam

NZ
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 93
3

Spoko, nie martw się, Twój przypadek jest typowy. Wygląda on mniej więcej tak:

  1. Przychodzi ktoś na forum z jakimś kompletnie absurdalnym pomysłem rozwiązania jakiegoś problemu X.
  2. Niektórzy rzucają równie poronione pomysły.
  3. Z czasem ktoś sprytny zauważa, że nikt nie opisał do tej pory problemu X.
  4. Po kilkunastu-kilkudziesięciu postach udaje się przekonać autora, że trzeba zacząć od opisania źródłowego problemu X.
  5. Po paru dniach autor to w końcu robi.
  6. Ktoś rzuca rozsądny pomysł.
  7. Wątek zostaje zakończony.
HE
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Kraków
  • Postów: 233
0

@Shalom napisałem co chcę osiągnąć i wychodzi na to, że pomysł z hashcode jest chyba dobry. Chodzi to to aby na podstawie ciągu znaków np. "4programmers" utworzyć unikalne ID które da się zapisać w Integer. Tylko żeby to ID nie było losowe tylko związane z wpisanym ciągiem. Jak nie da się tego osiągnąć zostaje mi ręczne ustawianie ID i sprawdzanie przy dodawaniu do zbioru czy takie czasem nie istnieje.

Problem wygląda mniej więcej tak:
Można dodawać listy i elementy do list, nazwa listy musi być unikalna i nazwa elementu w obrębie listy też. Chodziło mi o to, żeby na podstawie stringa nazwaListy+nazwaElementu tworzyć unikalne id.

Patryk27
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
  • Postów: 13042
0

Dlaczego po prostu nie zrobisz sobie:

Kopiuj
CREATE TABLE cośtam (
  id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
  listName VARCHAR(64) NOT NULL,
  elementName VARCHAR(64) NOT NULL,
  UNIQUE (listName, elementName) 
)
SW
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 426
1
Hepek napisał(a):

@Shalom napisałem co chcę osiągnąć i wychodzi na to, że pomysł z hashcode jest chyba dobry. Chodzi to to aby na podstawie ciągu znaków np. "4programmers" utworzyć unikalne ID które da się zapisać w Integer. Tylko żeby to ID nie było losowe tylko związane z wpisanym ciągiem. Jak nie da się tego osiągnąć zostaje mi ręczne ustawianie ID i sprawdzanie przy dodawaniu do zbioru czy takie czasem nie istnieje.

Pamietaj, ze ten sam hash code moze byc dla dwoch roznych stringow.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.