Wpis z mikrobloga

Hej, korzystam z Hibernate w mojej aplikacji Spring Boot. Model bazy danych jest dość skomplikowany, oznacza to że od tabelki przechowującej id właściciela zasobu, do samego zasobu, mogą być nawet 4 inne tabele po drodze. W jaki sposób mam sprawdzać czy użytkownik próbujący uzyskać dostęp do zasobu jest jego właścicielem? Nie uśmiecha mi się pobieranie po kolei 5 encji w górę tylko aby pobrać id. #jpa #hibernate #spring #springboot #java #bazydanych #programowanie #pytanie
  • 5
@Kolorowezworki: Dlaczego? Przecież istnieją procesy biznesowe tak skomplikowane że nie zawsze da się wszystko odpowiednio odtworzyć w bazie bez rozbudowania struktur. Projektu bazy jestem pewny.
Jeżeli zasób jest bezpośrednią własnością właściciela, to rekord powinien zawierać jego ID. Jeżeli zasób jest częścią jakiegoś złożonego obiektu, to i tak potrzebujesz całości, żeby mieć kontekst. Wówczas zazwyczaj będziesz odczytywał dane od drugiej strony. Jesi to jeszcze inny przypadek, to można zrobić jakąś tabelę asocjacyjną albo stored procedure, która będzie zwracać to, czego potrzebujesz. Dane przetwarzamy zawsze jak najbliżej źródła :)