Więcej tabel czy więcej kolumn w tabeli?

0

Potrzebuję przechować w bazie informacje dla kogo jakaś treść jest przeznaczona i oddzielnie widoczna i oddzielnie zaznaczyć czy jest to dla konkretnych użytkowników, czy dla grup.
Pomyślałem o 4 tabelach
Przeznaczenie-Grupa-Tresc
Przeznaczenie-User-Tresc
Widocznosc-Grupa-Tresc
Widocznosc-User-Tresc

W każdej 2 kolumny - idFor (id grupy lub użytkownika) i idTresc (identyfikator tresci, które są przechowywane w innej tabeli).

Ale może lepiej upchnąć to wszystko w jedną tabelę z 4 kolumnami?
Pierwsza kolumna określa czy jest to przeznaczenie czy widoczność
Druga kolumna czy identyfikator dotyczy grupy czy użytkownika
pozostałe 2 kolumny to idFor i idTresc

Czy ma to znaczenie z punktu widzenia optymalizacji? Jak to powinno być zrobione? Są jakieś zasady projektowania baz SQL które by tego dotyczyły. Baza będzie postawiona na MySQLu

0

Przeczytałem i wydaje mi się, że dotyczy to trochę innego problemu.

U mnie byłyby np. takie rekordy:

Przeznaczenie-Grupa-Tresc

idFor idTresc
1 1
1 2
2 2

Przeznaczenie-User-Tresc

idFor idTresc
1 3
1 4
2 3

Widocznosc-Grupa-Tresc

idFor idTresc
3 3

Widocznosc-User-Tresc

idFor idTresc
3 3
4 3
5 3

Dla tej drugiej opcji wyglądałoby to tak:

Type ForType idFor idTresc
przeznaczenie grupa 1 1
przeznaczenie grupa 1 2
przeznaczenie grupa 2 2
przeznaczenie user 1 3
przeznaczenie user 1 4
przeznaczenie user 2 3
widocznosc grupa 3 3
widocznosc user 3 3
widocznosc user 4 3
widocznosc user 5 3

Użytkownik może być w kilku grupach

1 użytkowników online, w tym zalogowanych: 0, gości: 1