• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Jak nadawać id obiektom w bazie?

Object Storage Arubacloud
0 głosów
231 wizyt
pytanie zadane 17 marca 2018 w Inne języki przez marcin99b Szeryf (82,080 p.)
Może bardzo podstawowe pytanie, ale zastanawiam się jak to zrobić, aby wyglądało dobrze i id posta było zwracane po jego dodaniu

Fajnym sposobem jest generowanie ID jako UUID (w c# guid), jednak to rozwiązanie ma pewną wade - nie wygląda dobrze na pasku url, w sytuacji kiedy w projekcie mamy np posty i użytkownik może zajrzeć do konkretnego posta
Jednak kiedy pobieramy z bazy id ostatniego posta, wykonujemy dodatkową operacje na bazie danych, a opcja automatycznego dodawania id przez baze, utrudnia z kolei podawanie id posta zaraz po jego dodaniu

Jak zrobić dodawanie postów, aby nie robić problematycznych dodatkowych operacji na bazie i od razu po dodaniu posta zwracać jego id do użytkownika?

1 odpowiedź

0 głosów
odpowiedź 17 marca 2018 przez adrian17 Ekspert (344,860 p.)

a opcja automatycznego dodawania id przez baze, utrudnia z kolei podawanie id posta zaraz po jego dodaniu

Z tego co wiem, każde API do baz danych oraz ORM powinny udostępniać ID ostatniego stworzonego obiektu (wiersza), więc to nie powinien być problem.

komentarz 17 marca 2018 przez Tomek Sochacki Ekspert (227,510 p.)
Na bazie MySQL można łatwo pozyskać LAST_INSERT_ID() pod warunkiem, że w insert był tylko jeden rekord, bo jak więcej to dostaniesz ID pierwszego z wprowadzonych rekordów.
komentarz 17 marca 2018 przez marcin99b Szeryf (82,080 p.)
używam mongo, ale sprawdze jak wygląda to tutaj

tylko co w sytuacji, kiedy z jednej bazy korzystać może kilka aplikacji (kilka instancji tej samej) i dwie jednocześnie coś dodadzą? Wtedy może się okazać że ostatni stworzony obiekt to nie ten nasz, i z tym jest tu największy problem, że zwrócone id nie będzie należało do naszego obiektu
1
komentarz 17 marca 2018 przez adrian17 Ekspert (344,860 p.)

używam mongo

Nie wiem jak to wygląda w nie-SQLowych bazach; natomiast szybkie guglowanie pokazuje, że może to to: https://stackoverflow.com/questions/14481521/get-the-id-of-inserted-document-in-mongo-database-in-nodejs

tylko co w sytuacji, kiedy z jednej bazy korzystać może kilka aplikacji

To nie powinien być problem. Na przykład cytat z dokumentacji MySQLa:

The value of mysql_insert_id() is affected only by statements issued within the current client connection. It is not affected by statements issued by other clients.

Podobne pytania

0 głosów
1 odpowiedź 119 wizyt
pytanie zadane 14 maja 2020 w C i C++ przez ullortnaci Nowicjusz (220 p.)
0 głosów
4 odpowiedzi 396 wizyt
pytanie zadane 11 stycznia 2016 w Offtop przez niezalogowany

92,555 zapytań

141,400 odpowiedzi

319,537 komentarzy

61,938 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...