Możliwość definiowania pól przez usera, Jak zaprojektować bazę z możliwością dodawania pól |
Możliwość definiowania pól przez usera, Jak zaprojektować bazę z możliwością dodawania pól |
2.04.2020, 07:18:57
Post
#1
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 4.11.2019 Ostrzeżenie: (0%) |
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. |
|
|
2.04.2020, 08:33:03
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 421 Pomógł: 310 Dołączył: 18.04.2012 Ostrzeżenie: (0%) |
Tak samo jakbyś dodał TAG. Rozwiązań mnóstwo w necie.
|
|
|
2.04.2020, 08:50:52
Post
#3
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 4.11.2019 Ostrzeżenie: (0%) |
Mnóstwo rozwiązań - faktycznie pomogło mi - dzięki
|
|
|
2.04.2020, 21:29:21
Post
#4
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) |
Najprostsze i dość łatwe do zaimplementowania to dodatkowe tabele.
np. id produktu, nazwa pola, wartość. Potem dołączasz sobie takie pola i tyle. |
|
|
6.04.2020, 15:42:58
Post
#5
|
|
Grupa: Zarejestrowani Postów: 2 707 Pomógł: 290 Dołączył: 16.12.2008 Skąd: Śląsk Ostrzeżenie: (0%) |
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. Ten post edytował markonix 6.04.2020, 15:43:11 -------------------- |
|
|
Wersja Lo-Fi | Aktualny czas: 24.09.2024 - 06:03 |