Я использую серверный JavaScript - да, на самом деле я использую серверный JavaScript.Чтобы еще больше усложнить ситуацию, я использую Oracle в качестве серверной базы данных (10g).С помощью какого-то сумасшедшего XSLT-кода и создания HTML-кода, похожего на мутант, я могу создавать по-настоящему модные веб-формы - да, я знаю о Rails и других аналогичных фреймворках и вместо этого выбираю путь ужаса.В моем распоряжении нет JQuery или других модных фреймворков, просто обычный JavaScript, который должен поддерживаться базовым движком Mozilla Rhino.Да, это безумие, и мне это нравится.
Итак, в моем распоряжении множество таблиц, и некоторые из них заполнены ассоциативными ключами, связывающими значения.Поскольку я радуюсь людям, я хочу добавить некоторые изящные решения, основанные на предпочтениях пользователей.
У всех моих пользователей есть уникальный user_id, и этот user_id доступен в течение всего сеанса.
Моя первоначальная идея - создать таблицу предпочтений пользователя, в которой у меня есть три столбца: user_id, feature и pref_string.Используя разделитель, такой как: или - (еще не думал о подходящем), я мог бы сохранить кучу предпочтений в виде списка и сохранить его элементы в массиве, используя метод .split (аналогично PHP).-функция взрыва).Столбец функции может быть похож на имя таблицы или некоторый идентификатор для «функции», которую я тоже хочу связать с настройками.Я ненавижу жесткое кодирование объектов, особенно потому, что хочу иметь возможность их резервного копирования и повторного использования этой функциональности во всем приложении.Конечно, мне бы понравились лучшие идеи, просто имейте в виду, что я не могу просто добавить библиотеку, которая легко.
Эти настройки могут быть как «присоединены» к таблице, так что я могу запросить ее и использовать ее значения.
Надеюсь, это не звучит слишком сложно, потому что ну ... это в основном что-то действительно простое, что мне нужно.
Спасибо!
РЕДАКТИРОВАТЬ
Допустим, я хочу заполнить выпадающий список, который в настоящее время имеет 10 динамических значений.Я бы получил их из базы данных, используя простое выражение select:
SELECT pet, value FROM pets
Это вернуло бы таблицу, подобную следующей:
dog 1
cat 2
fish 3
Я бы ввел это в раскрывающемся списке.Однако, если бы я мог добавить настройки в эту таблицу, например, user_id 100 будет видеть только млекопитающих (собака, кошка), а user_id 200 будет видеть только морских существ (рыба).А теперь представьте, что в таблице есть все существа мира, и у меня есть много таблиц, которые требуют таких предпочтений.
Поскольку у меня может быть неограниченное количество пользователей, мне придется применить некоторую форму метаданных.Решения для этого, вот что я ищу.