blpIII
15.04.2012, 17:48:26
Mam pytanie co lepiej zastosować:
W tabeli users obecnie przetrzymywane są informacje
----------------
USERS
----------------
idUsera
imie
nazwisko
... inne tyczące się usera oraz
zdjecieGlowne
zdjecie1
zdjecie2
zdjecie3
zdjecie4
Chciał bym wyciągnąć dane zdjęcia do osobnej tabeli, jest ograniczona ilość zdjęć przypisanych do danego usera max 5 i teraz dwie koncepcje
1. tabela users ma postać
----------------
USERS
----------------
idUsera
imie
nazwisko
... inne tyczące się usera oraz
idZdjecia
tabela zdjecia ma postać
---------------
ZDJECIA
---------------
idZdjecia
zdjecieGlowne
zdjecie1
zdjecie2
zdjecie3
zdjecie4
2. tabela users ma postać
----------------
USERS
----------------
idUsera
imie
nazwisko
... inne tyczące się usera oraz
tabela zdjecia ma postać
---------------
ZDJECIA
---------------
idZdjecia
idUsera
url
Waszym zdaniem, która wersja jest poprawna, optymalniejsza itd..
alegorn
18.04.2012, 09:41:35
2 propozycja.
kwestia normalizacji danych.
uzywajac relacyjnych baz danych warto uzywac relacyjnego modelu danych. dziala lepiej.
poza tym 2 pozycja daje ci wieksze mozliwosci w sprawie rozwoju, no bo co, jesli bedziesz mial dodac kolejne zdjecie? albo jedno zdjecie mniej? albo dodac do tego nuty?
j.
edit:
choc tak naprawde to powinienes zrobic 3 tabele, jedna opisujace usera, druga zdjecia, trzecia laczaca owe tabele.
mialbys projekt bazy n:n, uzywajac dwu tabel masz 1:n (zdjecie moze miec tylko jednego usera). choc z drugiej strony to ci powinno wystarczyc.
adamec
18.04.2012, 10:33:19
zdecydowanie opcja 2 z porawką wg mnie:
----------------
USERS
----------------
idUsera
imie
nazwisko
... inne tyczące się usera oraz
---------------
ZDJECIA
---------------
idZdjecia
idUsera
Zdjęcie
masz USERS z którym łączysz nieograniczoną ilość ZDJECIA poprzez where USERS.idUsera=ZDJECIA.idUsera . W tym rozwiazaniu user może nie mieć zadnego zdjęcia lub mieć ich wiele
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.