Dostępnośc danych w bazie wg użytkownika

0

Głupi temat, ale nie mam pomysłu na lepszy. :/

Załóżmy, że robię aplikację pt. "Twój Internetowy Garaż". Mamy w niej użytkowników, samochody i garaże. Użytkownik w garażu może trzymać samochody, to jest jasne. Ale samochodów są dwa rodzaje - publiczne, czyli wpisywane do systemu przez admina i prywatne użytkownika, które każdy sobie może dodawać samodzielnie.
I mam dylemat, ale w sumie bardziej skłaniam się do opcji zrobienia jednej tabeli dla wszystkich samochodów z kolumna IdUzytkownika, jeśli jej wartość będzie NULL, to będzie to samochód publiczny, a jeśli coś tam będzie, to użytkownika. Myślałem też o wersji z oddzielnymi tabelami dla publicznych i prywatnych, ale to chyba gorsze rozwiązanie, bo to tylko mnoży tabele i komplikuje zapytania, a zysku chyba żadnego nie daje?
Tak się tylko upewniam czy dobrze myślę, bo może coś przeoczyłem...

0

A może tabela "samochod uzytkownika" z idUzytkownika i idSamochodu. I rozwiązuje to ewentualną współwłasność samochodu ;)

0

Nie powinieneś rozbijać tabeli na publiczne i prywatne, przecież poza rozróżnieniem publiczny, prywatny to nadal taki sam zbiór danych. Możesz to zrobić tak jak piszesz czyli jeżeli idUser puste to samochód publiczny, jeżeli nie to prywatny. Ten sposób jest ok. Załatwiasz w ten sposób dwie rzeczy przypisujesz do właściciela i rozróżniasz. Tylko zastanów się czy ty lub inny developer tej bazy nie zachcecie nagle wykorzystywać pola idUser inaczej niż obecnie? Inny programista może to zrobić nawet nieświadomie... Jeżeli istnieje takie ryzyko to lepiej zrób osobne pole typu boolowskiego isPrivate i wstawiaj tam true gdy samochód jest prywatny i po kłopocie.

0
ilo napisał(a)

A może tabela "samochod uzytkownika" z idUzytkownika i idSamochodu. I rozwiązuje to ewentualną współwłasność samochodu ;)

Ten mój przykład, to nie jest naprawdę to co robię. ;) Samochody to u mnie dane słownikowe, użytkownik ma mieć słownik złożony z samochodów publicznych i swoich prywatnych.
A w Twoim pomyśle, to publiczne to te, które nie miałyby przypisanych użytkowników? Trochę to komplikuje zapytania...

AdamPL napisał(a)

Tylko zastanów się czy ty lub inny developer tej bazy nie zachcecie nagle wykorzystywać pola idUser inaczej niż obecnie? Inny programista może to zrobić nawet nieświadomie... Jeżeli istnieje takie ryzyko to lepiej zrób osobne pole typu boolowskiego isPrivate i wstawiaj tam true gdy samochód jest prywatny i po kłopocie.

Ryzyka raczej nie ma, bo to prywatny projekt, innych programistów nie będzie. :) A pole boolowskie, też nie załatwi sprawy do końca, bo oprócz niego i tak musiałbym mieć nadal UserId.

Dzięki Wam za odpowiedź. :)

0

Miałem na myśli dodanie pola boolowskigo oprócz, a nie zamiast UserId.

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