Jest ten projekt, nad którym pracuję. To jest jak sieć społecznościowa, w której możemy mieć użytkowników, posty, zdjęcia itp., A potem pojawił się ten problem. Jesteśmy przyzwyczajeni do Mysql i "prawie magicznego" pola auto-inkrementacji, a teraz nie możemy już na to liczyć. Wiem, że obiekt _id w Mongo daje łatwy sposób identyfikacji dokumentu, ponieważ gwarantuje on wyjątkowość. Ale klucz nie jest przyjazny dla użytkownika i to, czego potrzebujemy, więc możemy zrobić adresów URL jak:Generowanie przyjaznych dla użytkownika identyfikatorów w MongoDb
http://website.com/posts/{post_id}
http://website.com/{user_id}
I opracowali rozwiązanie, ale nie sądzę, jest to najlepszy sposób to zrobić. Najpierw tworzę tabelę mysql z tylko jedną kolumną. Ta kolumna przechowuje identyfikator użytkownika i jest to pole automatycznego zwiększania wartości. Dla każdego nowego rekordu na mongo wstawiam nowy wiersz w tej tabeli mysql i otrzymuję identyfikator użytkownika z funkcją "LAST_INSERT_ID", teraz mogę wstawić moje dane do mojej kolekcji mongo z numerycznym ID. Inną korzyścią jest to, że mogę wymazać mój tabelę mysql powiedzmy po milionie wierszy, ponieważ id są już zapisane w mongo. Czy robię to źle?
Można oczekiwać użytkownicy zapamiętać liczbę całkowitą? Jedyną osobą, którą znam, jest to, że Randall ma sławę xkcd, a ma tylko nieco ponad 1000. Po prostu użyj identyfikatorów mongo - użytkownicy i tak ich nie zapamiętują. –
"przyjazny dla użytkownika" oznacza treści czytelne dla człowieka i zrozumiałe. Nie potrzebuję użytkowników do zapamiętania, ale potrzebuję go z innych powodów. –