mam tablelę media która zawiera klucze obce z tabel do których media moga sie odnosić.
Mianowicie przyjmijmy że mamy wypozyczalnie kaset video
media bedą to zwyczajne przechowywanie zdjeć czyli nazwa zdjecia, ściezka dostępu
uzytkownik i dajmy na to kaseta video moga posiadać takie zdjęcia. Czyli mamy
CREATE TABLE media (
MEDIA_ID bigint(20) ,
VIDEO_ID bigint(20) ,
USER_ID bigint(20) ,
PATH TEXT,
PRIMARY KEY (MEDIA_ID),
) DEFAULT CHARSET=utf8;
CREATE TABLE video (
VIDEO_ID bigint(20) ,
DESC TEXT
PRIMARY KEY (VIDEO_ID),
) DEFAULT CHARSET=utf8;
CREATE TABLE user(
USER_ID bigint(20) ,
NAME TEXT
PRIMARY KEY (USER_ID),
) DEFAULT CHARSET=utf8;
Jak zauważyliście VIDEO_ID i USER_ID w tabeli media sa kluczami obcymi. Jezeli w tabeli media przechowuję video to VIDEO_ID != null a USER_ID == null.
W miare rozrostu aplikacji (czyli dodawania typów mediów) będe musiał dokładac nową kolumne w media z kluczem obcym.
Jak można to zrobić lepiej i pozbyć sie tych dodatkowych kolumn?
myślałem żeby media wyglądaly coś na zasadzie:
CREATE TABLE media (
MEDIA_ID bigint(20) ,
TYPE_ID bigint(20) ,
TYPE_DESCRIPTION bigint(20) ,
PATH TEXT,
PRIMARY KEY (MEDIA_ID),
) DEFAULT CHARSET=utf8;
ale zupełnie nie wiem jak sie do tego zabrac....
chciałem to zrobić używając JPA