質問

私はサーバーサイドJavaScriptを使用しています - はい、私は実際にサーバー側JavaScriptを使用しています。物事をさらに複雑にするために、Oracleをバックエンドデータベース(10G)として使用します。いくつかのクレイジーなXSLTとミュータントのようなHTML世代を使用すると、私は本当に派手なWebフォームを構築できます - はい、私はレールやその他のフレームワークを知っています、そして私は代わりにホラーの道を選びます。 Mozilla Rhinoと呼ばれる基礎となるエンジンによってサポートされるはずのol 'javaScriptだけで、Jqueryやその他の派手なフレームワークはありません。はい、それは非常識で、私はそれが大好きです。

そのため、私は自由に使えるテーブルがたくさんあり、それらのいくつかは、値にリンクする連想キーで満たされています。私は人々を喜ばせているので、気の利いたユーザープレーファレンス駆動型のソリューションを追加したいと思います。

私のユーザーはすべて一意のuser_idを持っており、このuser_idはセッション全体で利用できます。

私の最初のアイデアは、ユーザー設定テーブルを持つことです。ここでは、「3つの」列があります:user_id、feature、fref_string。次のような区切り文字を使用する:または - (まだ適切なものについて考えていない)、私は多くの設定をリストとして保存し、.split -methodを使用して配列内にその要素を保存することができました(PHPと同様に同様です-Explode関数)。機能列は、設定をリンクしたい「機能」のテーブル名または識別子のようなものです。特にこれらをバックアップしてアプリケーション全体で再利用できるようにしたいので、ハードコードオブジェクトが嫌いです。もちろん、私はより良いアイデアが大好きです。簡単にライブラリを追加することはできません。

これらの好みはテーブルに「結合」されているようなものである可能性があるため、照会してその値を使用できます。

あまり複雑に聞こえないことを願っています。

ありがとう!

編集

現在10の動的値があるドロップダウンボックスに記入したいとしましょう。単純な選択ステートメントを使用して、データベースからこれらを取得します。

SELECT pet, value FROM pets

次のようなテーブルを返します。

dog  1
cat  2
fish 3

ドロップダウンボックス内にこれを入力します。ただし、user_id 100には哺乳類(犬、猫)のみが表示され、user_id 200には海の生き物(魚)のみが表示されるように、そのテーブルに好みが追加されるのが好きな場合は好きです。テーブルには世界のすべての生き物があり、そのような好みを必要とするテーブルがたくさんあると想像してください。

無制限のユーザーがいることができるので、何らかの形のメタデータを適用する必要があります。これを行うための解決策は、私が探しているものです。

役に立ちましたか?

解決

これは、サーバー側のJavaScriptとは何の関係もないように聞こえます(私は しないでください 狂った選択だと思う)またはあなたのフレームワークの欠如(私は 行う 少しクレイジーだと思います)。これは、その中心にあるデータベースとテーブルデザインです。

テーブルからの値のリストをどのように分類するかは、状況に応じてあなた次第です。たとえば、説明したデータを持っているペットテーブルがある場合があります。次に、PET_ATTRIBUTE_LISTテーブルがある場合があります。これには、ペットが所有する可能性のあるデータがあります。最後に、これら2つをリンクするPET_ATTRIBUTEテーブルを持つことができます。そうすれば、属性(魚、哺乳類、脊椎動物など)は1つのテーブルにあり、ペット(犬、猫、ベータなど)が別のテーブルにあり、その後、任意の属性セットをペットにリンクできます。

ユーザーが重要なオプションのみを表示するだけで、ユーザーを保持しているテーブルとPET_ATTRIBUTE_LISTテーブルの間にレコードをリンクするuser_pet_attributeテーブルがあります。

この方法を使用して多くの多くの関係がありますが、おそらく最も柔軟です。

他のヒント

「フレームワークを使用しない」という点を再考する必要があると思います。 HELMA/RINGOは、Rhinoに基づいた成熟した生産対応のサーバー側JavaScriptフレームワークです。抽象化レイヤーは、JavaScriptオブジェクトをリレーショナルデータベース(JDBC接続)にマッピングし、ユーザーオブジェクトと設定の簡単な方法をすでに提供しています。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top