我正在使用服务器端 JavaScript - 是的,我实际上正在使用服务器端 JavaScript。为了使事情更加复杂,我使用 Oracle 作为后端数据库 (10g)。通过一些疯狂的 XSLT 和类似突变的 HTML 生成,我可以构建非常精美的 Web 表单 - 是的,我知道 Rails 和其他类似的框架,我选择了恐怖的道路。我没有 JQuery 或其他花哨的框架可供我使用,只有普通的 JavaScript 应该由名为 Mozilla Rhino 的底层引擎支持。是的,这很疯狂,我喜欢它。
所以,我有一堆表可供我使用,其中一些表充满了链接到值的关联键。由于我是一个讨人喜欢的人,我想添加一些漂亮的用户偏好驱动解决方案。
我的用户都有一个唯一的 user_id,并且这个 user_id 在整个会话期间都可用。
我最初的想法是有一个用户偏好表,其中有“三”列:user_id、feature 和 pref_string。使用分隔符,例如 : 或 - (还没有想到合适的分隔符),我可以将一堆首选项存储为一个列表,并使用 .split-method 将其元素存储在一个数组中(类似于 PHP - 爆炸功能)。功能列可能像表名或我想链接首选项的“功能”的某些标识符。我讨厌硬编码对象,特别是因为我希望能够备份这些对象并在应用程序范围内重用此功能。当然,我会喜欢更好的想法,但请记住,我不能轻易地添加一个库。
这些首选项可能就像“加入”到表中一样,所以我可以查询它并使用它的值。
我希望它听起来不会太复杂,因为嗯..它基本上是我需要的非常简单的东西。
谢谢!
编辑
假设我想填写一个下拉框,目前有 10 个动态值。我会使用一个简单的 select 语句从数据库中获取这些:
SELECT pet, value FROM pets
它将返回如下表:
dog 1
cat 2
fish 3
我会在下拉框中输入这个。但是,如果我愿意将首选项添加到该表中,例如 user_id 100 只会看到哺乳动物(狗、猫),而 user_id 200 只会看到海洋生物(鱼)。现在想象一下这张桌子上有世界上所有的生物,我有很多需要这种偏好的桌子。
由于我可以拥有无限的用户,我将不得不应用某种形式的元数据。做到这一点的解决方案,是我正在寻找的。