Middle
Ar reikalinga jungiamoji lentelė tarp vartotojų ir promocodes?
sobes.tech AI
Atsakymas iš AI
Jei vartotojų ir promocode'ų tarpusavio santykis yra "daugiau nei vienas prieš vieną", reikalinga jungiamoji lentelė. Pavyzdžiui, jei vienas vartotojas gali naudoti kelis promocode'us, o vienas promocode'as gali būti naudojamas kelių vartotojų.
Jei, kita vertus, kiekvienas promocode'as yra susietas tik su vienu vartotoju, arba atvirkščiai, jungiamoji lentelė nėra būtina — pakanka pridėti išorinį raktą į vieną iš lentelių.
Jungiamojo lentelės pavyzdys:
CREATE TABLE user_promo_codes (
user_id INT,
promo_code_id INT,
used_at TIMESTAMP,
PRIMARY KEY (user_id, promo_code_id),
FOREIGN KEY (user_id) REFERENCES users(id),
FOREIGN KEY (promo_code_id) REFERENCES promo_codes(id)
);