Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Możliwość definiowania pól przez usera
Forum PHP.pl > Forum > Bazy danych
okatse
Szukam dobrego rozwiązania takiego problemu - opisze na przykładzie magazyny
Do bazy trzeba zapisać informacje o produkcie czyli id, nazwa , waga , ilość. Problem w tym że użytkownik może swobodnie dodawać nowe pola opisowe np: kolor, rozmiar itd. Tych dodatkowych pól będzie parę tysięcy
Pytanie jak zaprojektować bazę aby te dodatkowe pola i ich wartości zapisać i żeby potem wygodnie z tego korzystać w celu wyszukiwania , sortowania itp ?
Na pewno nie chciałbym dodawać do tabeli nowej kolumny - bo za jakiś czas jedna tabela składała by się z kilku tysięcy kolumn.
mmmmmmm
Tak samo jakbyś dodał TAG. Rozwiązań mnóstwo w necie.
okatse
Mnóstwo rozwiązań - faktycznie pomogło mi - dzięki
Pyton_000
Najprostsze i dość łatwe do zaimplementowania to dodatkowe tabele.

np. id produktu, nazwa pola, wartość.

Potem dołączasz sobie takie pola i tyle.
markonix
Przemyśleć NoSQL, bo do tego w teorii (nie jestem praktykiem) do tego najlepiej się nadają, gdy dane się rozrastają poziomo i nie jest ich istotny format.

Natomiast w bazie relacyjnej tworzysz 2 tabele - jedną z parametrami, drugą z wartościami. Many to many.
Jest też hybrydowe podejście - z jedną tabelą. Podobne do tego co podał @Pyton_000, ale przez nazwę pola rozumie się nazwę kodową (klucz unique na id produktu + nazwa), a same deklaracje pól określasz w configu aplikacji w php. Można wtedy elastycznie operować parametrami, pobawić się w rzutowanie, zawrzeć logikę walidacji. To by było ciężkie do osiągnięcia gdyby parametry pola były zwykłym wierszem w bazie.
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.
Invision Power Board © 2001-2025 Invision Power Services, Inc.