【发布时间】:2011-01-01 16:46:16
【问题描述】:
我正在使用服务器端 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 只会看到海洋生物(鱼)。现在想象一下,这张桌子上有世界上所有的生物,而我有很多需要这种偏好的桌子。
由于我可以拥有无限的用户,我将不得不应用某种形式的元数据。我正在寻找解决方案。
【问题讨论】:
-
您的偏好表也应该有某种“偏好类型”列。一些首选项是简单的布尔值,其他可能是日期、整数或字符串。您可能还希望包含其他指标,以便偏好 UI 可以在某种程度上自动化 - 对于每个新的偏好都需要自己的 UI 编码,这将是一个维护问题。
-
哦,另外,您在这里要求什么也不清楚。您当前的解决方案有问题吗?
-
我知道不能掉以轻心。但我宁愿从一个至少可以有一些“偏好”的模型开始;像初始值或可见项目。后者可能只是使用布尔类型。
-
没有错,我想添加一个功能,为不同类型的用户使用相同的解决方案(交互调整)。
标签: javascript sql oracle rhino user-preferences