Wpis z mikrobloga

Taka sytuacja
Potrzebuję wyświetlać 1000 ostatnich wierszy z bazy.
No więc paginacja i sortowanie po id malejąco.

Ale mamm kilka tabel i one mają swoje własne id z auto increment.
Jak w springu to najlepiej połączyć? Id się powtarzają między tabelami.

1. Pominąć id, zrobić union, sortować po dacie utworzenia?
2. Do każdej tabeli dodać kolumnę z id które będzie unikalne w całej bazie i skryptem dopisać do istniejących wierszy.

#spring #java #springboot #bazydanych
  • 4
@100x: od biedy możesz utworzyć nową tabelkę foo, w której będziesz miał takie pola

id_w_tabeli_źródłowej | nazwa_tabeli_źródłowej | insert_timestamp
i triggery after insert na wszystkich tabelach źródłowych żeby po dodaniu nowych wierszy do nich, dodawała się też informacja do tabeli foo
a potem coś w stylu:

with newest as (select top 1000 id_w_tabeli_zrodlowej, nazwa_tabeli_zrodlowej from foo order by insert_timestamp desc)
select jakies, rekordy from pierwsza_tabela_zrodlowa where id in (select id_w_tabeli_zrodlowej from newest where nazwa_tabeli_zrodlowej = pierwsza_tabela_zrodlowa)
union all
select jakies, rekordy from druga_tabela_zrodlowa where id in (select id_w_tabeli_zrodlowej from newest where nazwa_tabeli_zrodlowej = druga_tabela_zrodlowa)
...
...
union all
select jakies, rekordy from nta_tabela_zrodlowa where id in (select id_w_tabeli_zrodlowej from newest where nazwa_tabeli_zrodlowej =