Я прочитал, что модель имя-значение-пара в дизайне базы данных является анти-паттерном.По сути у вас есть таблица с двумя столбцами.Один столбец называется «имя», а другой столбец называется «значение».Допустим, вы управляете конфигурацией AWS для разных регионов.Структура базы данных будет выглядеть следующим образом:
name value
aws.new_york.access_key jio4j54h
aws.new_york.site.user john
aws.new_york.site.pass eoiri4iiuh
aws.los_angeles.access_key tret55464
aws.los_angeles.site.user bob
aws.los_angeles.site.pass rtry45yrt
aws.new_york.access_key fgfhgf4fdg
aws.new_york.site.user edward
aws.new_york.site.pass 45gfhgfhgf
Единственное использование - получение конфигурации:
MyApp.config.get('aws.new_york.access_key')
Другое решение - использовать объединения.Это устранит дублирование и позволит обеспечить ссылочную целостность.Но это становится громоздким:
table_aws has_many table_states, который has_many table_credentials, который имеет столбцы access_key, user, pass.Это позволяет удалить дублирование, но представьте себе возможность увеличения числа вложенных объединений.
Учитывая мой единственный вариант использования, модель модели имя-значение-пара по-прежнему является антипаттерном или она подойдет?