問題タブ [denormalized]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
9408 参照

php - データベースへのアレイの保存

配列をデータベースに格納するのが実際に良い習慣かどうか疑問に思いますか?json_encode私はよりも使う傾向がありますがserialize、それが良い考えかどうか疑問に思っていました。そうでない場合は、いくつかの小さな変更を加えて、配列をコンマで単純化することができます。

0 投票する
2 に答える
2689 参照

php - シリアライズされた配列 MySQL から特定の値を取得する

データベースの構造は次のとおりです。

これは wordpress サイトからのものです。14.95 である最初の「価格」値を取得する必要があります。mysql に保存されているシリアル化された配列から特定の値を取得する最良の方法は何ですか?

0 投票する
2 に答える
206 参照

r - R のリレーショナル テーブルからのスパン マトリックス

多くの場合、私は R で SQL データベースに由来するデータを使用します。通常、SQL で多くのジャグリングを行いますが、plyr最近はますます使用するようになり、リレーショナル データ テーブルからマトリックスにまたがるのが R の方が簡単かどうか疑問に思いました。これが例です。

私は次のようなテーブルを持っています

そして、非正規化された行列として配置したいと思います:

など..構文を使用してSQLでこれを修正しましたCASE WHENが、Rでそれを行うことができません。たとえば、次のようになります。

0 投票する
1 に答える
154 参照

php - MySQL データベースの操作に必要な PHP 正規表現パターン

テーブルにいくつかの列があり、説明列には次のような情報が含まれています。

SQL コマンドを使用して、更新する必要があります。

そこで、現在のレコード (説明列) に最初と 2 番目のパラメーターが一緒に存在する場合、PHP 関数を使用して更新します。

例: ユーザーが description を含む値を変更したい場合、そのa1b01,Value 1ような SQL コマンドを実行します。

  • (星)は、これらの部分が不明であることを示します(これが正規表現が必要な理由です)

私の質問は:どうすれば入手できますか

弦の下の部分

正規表現経由ですが、パラメーターとして取得する必要がa1b01ありValue 1ます。

私はそれが欲しいだけです。私がそのように呼ぶときdo_action;

レコードは次のようになります: (最初の部分は更新されます... )a1b01,Value 1,2,3,25|a1b01,Value2,1,1,50|b203c,Value 1,0,2,20

0 投票する
1 に答える
218 参照

mysql - MYSQL 非正規化テーブル ルックアップ

こんにちは、Stack Overflow の仲間の旅行者です。私が何を得ているのかをよりよく説明するために、写真以外でこれを尋ねる方法が完全にはわかりません. 万が一、これが他の場所で質問されていて、見つけられなかった場合は、お詫び申し上げます。

tableA と tableB の 2 つのテーブルがあります。TableA には、 id および displayName とマークされた列が含まれており、その中には数十の項目があります (簡単にするために、5 のみと仮定します)。ID 列は一意で、自動インクリメントされます。これは、検索の主キーでもあります。2 番目のテーブル (TableB) には、そのアイテムの ID も含まれていますが、TableA の ID への 4 つの参照と、関係のないいくつかの無関係な情報も含まれています。したがって、次のように表示されます。

現在、値を折りたたんで必要な情報を提供するクエリがあります: SQL: SELECT tB.name, tB.varA, tB.varB, tB.varC, tB.varD FROM tableB tB GROUP BY tB.name

ここでやりたいことは、varA、varB などを数値として表示する代わりに、データを TableA と関連付けて、displayName を挿入することです。だから代わりに

次のように表示されます。

0 投票する
2 に答える
287 参照

mysql - テーブルのチェーン、いつ非正規化するのですか?

TABLE-AはTABLE-Bに1つ以上の行を持つことができ、TABLE-Cには1つ以上の行を持つことができ、TABLE-Dには1つ以上の行を持つことができます...など。

私がTABLE-Zにいて、TABLE-Aについての詳細を知る必要があるとしましょう。TABLE-ZからTABLE-Aまで機能するSQLクエリを作成しますか?ある時点で、たとえば、TABLE-ZがTABLE-Aに対してFKを持っていて、クエリがそれほど苦痛にならないようにするといいかもしれません。しかし、そのFKを置くと、正規化を破ることになると思いますよね?

これに対処する方法に関する一般的なアドバイスはありますか?

0 投票する
2 に答える
5071 参照

c - 非正規化数を2で割る

浮動小数点数を2で割るアルゴリズムを書いています。数値がすでに正規化されている場合(指数ビットは> 0)、プロセスは非常に簡単だと思います。指数フィールドを1つ減らしてから、その値を元に戻すのが正しいアプローチだと思います。

すでに非正規化されている浮動小数点数を処理する方法を思い付くのに問題があります(指数ビットはすべて0です)。非正規化数とは何かを理解しており、それらを除算することの意味を一般的に理解していると思います。私は別のプログラムを介して作成したアルゴリズムを実行しています。これが私を混乱させる1つのメッセージです。

値0x7fffffを関数に渡すと、3fffffが返されます。この関数は0x400000を返すことになっています。

ここで何が起こっているのか、そしてなぜこれがこの指定された値を返すことになっているのか、私は本当に理解していません。これを試して説明できる人はいますか?なぜこの値を返すことになっているのですか?

非正規化数を処理するための私の最初のアプローチは、小数ビットを1ずつ右シフトする(2で割る)ことでしたが、これは望ましい手順ではないようです。

これが私が持っているものです:

0 投票する
1 に答える
1079 参照

mongodb - mongodb の使用中に関係を処理する方法

私は知っています、「非正規化された方法」または「nosqlの方法」で考えてください。

この単純なユースケースについて教えてください。

一部のユーザーがコメントを投稿し、コメントの取得中に一部のユーザー データを取得したいと考えています。「ユーザーレベル」などの動的データと「ユーザー名」などの静的データを表示したいとします。

静的データでは問題はありませんが、動的データはどうですか?

ユーザーレベルはユーザー照合にあります。読み取りパフォーマンスをアーカイブするために非正規化されたデータをコメントに複製する必要がありますが、ユーザーレベルも更新されます。

これは何らかの方法でアーカイブ可能ですか?

0 投票する
3 に答える
563 参照

mysql - ユーザー通知のためにmysqlデータベースを非正規化する方法は?

ユーザー通知のためにデータベースを非正規化する必要があると思います。たとえば、投稿にフラグを立てる場合 (ユーザーが考慮する必要があります)、flag ENUM('yes', 'no')(またはステータス列) の列を追加します。の WHERE 句を使用してカウントすることにより、ユーザーのフラグ付きイベントを見つけることができますuser_id='XX' AND flag='yes'

この正規化された構造は問題ありません。しかし、さまざまな種類の通知がある場合はどうでしょう。例: 投稿、コメント、写真のフラグ ... これは、ユーザーが自分のプロフィール ページにアクセスしたときに、いくつかのテーブルをカウントする必要があることを意味します。これは、さまざまなサイトの通知を受け取るため、stackexchange のようなクロス プロジェクトではより深刻です。

非正規化は、通知列をユーザーテーブルに追加するのに役立つと思います

この場合、対応するすべてのアクションでユーザー フラグ列を更新するために、追加の書き込みクエリを実行する必要があります。たとえば、投稿にフラグを立てる場合: UPDATE users SET post_flags=post_flags+1 WHERE user_id='XX'. 私の懸念は、後者のクエリを確実に実行して、この数とフラグが立てられた投稿の数との不一致を回避することです。で確保できると思いますTRANSACTION

このようにして、頻繁にアクセスするプロファイル ページの 1 つのクエリですべての通知を取得します。

私は正しい軌道に乗っていますか?または、この目的のために別のトリッキーなアプローチが一般的ですか?