To, co chcesz osiągnąć, to Entity-Attribute-Value (EAV) lub ewentualnie modelowanie wierszy rozwiązanie. Zwróć uwagę, że ten typ konstrukcji jest w dużej mierze niemile widziany z wielu całkiem dobrych powodów.
Jednak argumentowałem (np. tutaj , tutaj , tutaj i tutaj ), że EAV jest ZŁY, chyba że tak nie jest. Jednym z tych rzadkich wyjątków jest przypadek katalogu produktów, w którym śledzisz właściwości produktów i gdzie te właściwości nie są aż tak interesujące (dla Twojego systemu! ) z wyjątkiem sytuacji, gdy trzeba je pobrać i wydrukować na stronie internetowej produktu lub w siatce porównawczej itp.
Rozważ taki projekt:
To, co robisz w takim modelu, to opisywanie, jakie atrybuty powinny mieć produkty w danej kategorii, jakie wartości mogą mieć te atrybuty, a następnie jakie wartości ma każdy konkretny produkt dla każdego atrybutu.
Ten projekt ma wszystkie zwykłe ograniczenia, które nakłada EAV. Jeśli jednak chcesz zadać pytania typu:"Które koraliki mają średnicę 8mm?" to jest całkiem proste.