Zamiast pojedynczego wiersza dla każdego filmu, użyj tabeli atrybut-wartość. Następnie dodaj do tego dodatkowe pole, które określa użytkownika, którym będzie 0
dla oryginalnej wartości domyślnej. Tak więc tabela wygląda tak:
MovieID UserID Attribute Value
1 0 Title 12 Monkeys
1 0 Format DVD
1 1 Title Twelve Monkeys
Wtedy zapytanie o tytuł wyglądałoby tak:
SELECT MovieID, IFNULL(my.Value, default.Value) AS title
FROM movies AS default
LEFT JOIN movies AS my ON default.MovieID = my.MovieID AND my.Attribute = 'Title' AND my.userID = @user
WHERE default.UserID = 0 AND default.Attribute = 'Title'
Niektórzy projektanci baz danych również lubią używać AttributeID
zamiast ciągu jako nazwy atrybutu i oddzielnej tabeli, która odwzorowuje nazwy atrybutów na identyfikatory.