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

System encji i tabel w serwisie takim jak np. IMDB czy Filmweb

Object Storage Arubacloud
0 głosów
206 wizyt
pytanie zadane 7 października 2017 w Java przez Jonki Dyskutant (8,180 p.)
edycja 7 października 2017 przez Jonki

Piszę serwis podobny do IMDB lub Filmweb i obecnie próbuję zaprojektować bazę do filmów i kontrybucji. Może przedstawię sposób dodawania takiego filmu.

Najpierw dodany film musi trafić do "poczekalni" i czekać na weryfikację przez administratora

@Entity
@Table(name = "movies_lounge")
@Data
public class MovieLoungeEntity {}

jeśli film przejdzie pomyślnie weryfikację, jest dodawany do głównej tabeli

@Entity
@Table(name = "movies")
@Data
public class MovieEntity {}

Tu jest jeszcze w miarę OK.

Ale w takim serwisie musi być również możliwość edycji danych filmów.
Na przykład chcemy edytować opis, więc tworzę encję tylko z polami id_movie, id_author, description i edycja trafia do poczekalni

@Entity
@Table(name = "movies_descriptions_lounge")
@Data
public class MovieLoungeEntity {}

po weryfikacji również trafia do swojej głównej tabeli edycji opisów

@Entity
@Table(name = "movies_descriptions")
@Data
public class MovieDescriptionLoungeEntity {}

I taki sposób musi być stosowany dla wszystkich edytowanych pól, co daje kilkadziesiąt tabeli i encji. Po prostu masakra. Taki sposób jest stosowany, aby potem można było pobrać np. listę edytowanych opisów itd. W obecnej fazie pomijam punktacje za edycje konkretnych elementów, bo to wgl. system miałby z 200 tabel.

Ma ktoś jakiś pomysł, jak można to zaprojektować optymalniej?

 

EDIT: Rozkminiłem jak nie tworzyć dwóch tabel dla edycji czyli poczekalni i właściwej, a tylko jedną. Stworzę wartość enum STATUS i będą dostępne trzy statusy 'Czeka, Zaakceptowane, Odrzucone'.

1 odpowiedź

0 głosów
odpowiedź 7 października 2017 przez Ehlert Ekspert (212,670 p.)
Wywal tą poczekalnię. Dodajesz tabelę editions która zawiera id edycji, id filmu, enum z nazwą pola, nową wartość tego pola oraz timestamp.
komentarz 7 października 2017 przez Jonki Dyskutant (8,180 p.)

Chodzi Tobie o to, aby była tabele z polami

id      (np. 1)
id_filmu (np 100)
id_autora_edycji (np. 221)
nazwa_edytowanego_pola (np. OPIS)
opis     (np. Coś tam coś)
data     (np. 2017.10.07)
status     (np. czeka)

a skoro edytować można np. budżet to tabela powinna mieć wszystkie te same pola co film

id      (np. 1)
id_filmu (np 100)
id_autora_edycji (np. 221)
nazwa_edytowanego_pola (np. OPIS)
opis     (np. Coś tam coś)
budżet (np. null)
box_office (np. null)
fabuła (np. null)
ciekawostki (np. null)
data     (np. 2017.10.07)
status     (np. czeka)

i gdy np. edytuję tylko opis, to reszta ma być null. Tak?

A gdy edytuję np. budżet to ma wyglądać to tak

id      (np. 1)
id_filmu (np 100)
id_autora_edycji (np. 221)
nazwa_edytowanego_pola (np. BUDŻET)
opis     (np. null)
budżet (np. 100000)
box_office (np. null)
fabuła (np. null)
ciekawostki (np. null)
data     (np. 2017.10.07)
status     (np. czeka)

Podobne pytania

0 głosów
0 odpowiedzi 166 wizyt
+1 głos
1 odpowiedź 227 wizyt
pytanie zadane 11 listopada 2020 w Java przez siemasiema123.96 Początkujący (350 p.)

92,555 zapytań

141,402 odpowiedzi

319,552 komentarzy

61,939 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!

...