Kod
1[__user_parameter_values___] [___user_parameter___]
+--|user_parameter_values_id |* +--------|user_parameter_id |
| |user_parameter_id |<-----+ 1|user_parameter_name |
| |user_id | |user_parameter_array|
| +--------------------------+ |user_parameter_size |
| +--------------------+
| [__user_parameter_value__]
| |user_parameter_value_id |
+-->|user_parameter_values_id|
1..n|user_parameter_value |
+------------------------+
+--|user_parameter_values_id |* +--------|user_parameter_id |
| |user_parameter_id |<-----+ 1|user_parameter_name |
| |user_id | |user_parameter_array|
| +--------------------------+ |user_parameter_size |
| +--------------------+
| [__user_parameter_value__]
| |user_parameter_value_id |
+-->|user_parameter_values_id|
1..n|user_parameter_value |
+------------------------+
Struktura ta ma umożliwić zapis wielu wartości. Każdy parametr może być tablicą - określa to kolumna user_parameter.user_parameter_array. Jeśli parametr jest tablicą to wtedy w tabeli pośredniczącej user_parameter_values wciąż jest jeden wiersz, ponieważ pojedyńcza wartość jest zapisywana w user_parameter_value.
Mój problem jest następujący - przy zmianie rozmiaru tablicy na mniejszy chcę usunąć zbędne rekordy z user_parameter_value. Na załączonym obrazku jest zaznaczone, że pomiędzy relacją user_parameter_values a user_parameter_value zachodzi związek 1..n. W rzeczywistości związek ten to 1..user_parameter.user_parameter_size.
Jeżeli mam w takiej strukturze dane, powiedzmy.. numer telefonu określony jako tablicę o rozmiarze 3 i nagle decyduję się na zmniejszenie liczby numerów do 2 to pozostaje jeden zbyteczny wiersz. Utrudnieniem jest to, że całość jest realizowana przez tabelkę pośredniczącą.
Czy ktoś wie jak rozwiązać mój problem?