問題タブ [normalization]

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 投票する
3 に答える
705 参照

javascript - JavaScript 文字の正規化

私は Google Translate API を使用しています。Mc Donald'sを翻訳しようとすると、結果として次のようになります。

Mc Donald's

JavaScript などで他の数字参照に変換'するにはどうすればよいですか? 'ありがとう!

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

mysql - MySQL - データベース設計に関する質問 - 有効な形式的規範

「顧客」テーブルがあります。各レコードには、顧客名、電子メール、住所などが含まれます。

「skus」テーブルがあります。各レコードには、SKU の名前が含まれています。例: 「スーパー ソフトウェア バンドル」。

SKU は、単一の価格帯で購入可能なアイテムを表します。購入したアイテムには、1 つまたは複数の製品を含めることができます。

たとえば、「Super Software Bundle」という名前の SKU レコードは、product1 と product2 の 2 つの製品を表す場合があります。

使いやすさ/使いやすさの理由から、他のテーブルでは、購入した SKU だけでなく、顧客がアクセスできる個々の製品を追跡する必要があります。

質問: SKU が 1 から n 個の製品を表す場合、データベース内の SKU の可変サイズの性質をどのように表す必要がありますか? 助けてくれてありがとう。

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

php - MySQLによる正規化または代替

PHPとMySQLを使用して、ユーザーに関する多くのプロパティ(DOB、身長、体重など)を格納する必要のあるサイトを構築します。これはかなり単純です(単一のテーブル、多くのプロパティ(ほとんどすべてが必要))。

ただし、システムには、話し言葉や楽器の能力など、他の情報も保存する必要があります。全体として、そのような特性は12を超えています。デフォルトでは、別のテーブル(おそらく言語と呼ばれる)を作成してから、複合ID(user_id、language_id)を持つリンクテーブルを作成することを想定していました。

しかし、私が予想する問題は、訪問者がこれらの基準を使用してユーザーを検索しようとする場合です。使用しようとしているデータセットには、起動時に15,000人を超えるユーザーがいて、主な機能はユーザーの検索と絞り込みです。つまり、毎日数百のクエリがあり、最大で12以上のJOINを含むクエリを使用する可能性は魅力的ではありません。

だから私の質問は、より効率的になる代替案はありますか?私が考えていた1つの方法は、M2M値をIDのCSVとしてユーザーテーブルに保存し、それに対してLIKEクエリを実行することです。LIKEが最高ではないことは知っていますが、参加するよりはましですか?

可能な解決策は大歓迎です。

0 投票する
8 に答える
2362 参照

sql - データベースの正規化によるリソースへの影響は何ですか?

比較的正規化されていない形式からデータベースを取得して正規化する場合、リソース使用率にどのような変化が予想されるでしょうか。

たとえば、正規化とは、多くの場合、少数のテーブルからより多くのテーブルが作成されることを意味します。つまり、データベースには現在、より多くのテーブルがありますが、それらの多くは非常に小さいため、頻繁に使用されるテーブルをメモリにうまく適合させることができます。

テーブルの数が多いということは、抽象化されたデータを取得するために(潜在的に)より多くの結合が必要であることも意味します。したがって、システムが実行する必要のある結合の数が多いと、何らかの影響が予想されます。

では、正規化されていないデータベースを正規化すると、リソースの使用にどのような影響がありますか(つまり、何が変わるのでしょうか)。


編集:少しコンテキストを追加するために、300を超える恐ろしいテーブルを持つ既存の(つまりレガシー)データベースがあります。データの約1/2はTEXTで、残りの半分はcharフィールドまたは整数です。いかなる種類の制約もありません。私が尋ねる理由は、主に、物事を変更する必要があり、パフォーマンスや保守性が低下しないことを他の人に納得させるためのより多くの情報を入手することです。残念ながら、私が納得させなければならないのは、正規化をできるだけ避けたいという非正規化データベースのパフォーマンス上の利点について十分に知っていることです。

0 投票する
4 に答える
222 参照

sql - SQLテーブル内にXMLデータを保持することは、アーキテクチャ上の誤解ですか?

製品データを保持するために使用する SQL テーブルがあります。一部の製品には、他の付属データがあります (書籍にはページ数、表紙の種類、映画には時間の長さなどがあります)。

SQL で別のテーブルを使用してそれらを保持し、(名前、値) のペアを保持することができます。

XML で圧縮されたデータをテーブルの 1 つのフィールドに保持することもできます。これは正規化されたアプローチではありませんが、私にとってはより自然に思えます。

0 投票する
4 に答える
1007 参照

excel - Excelファイルを変換するためのツール?(列の入れ替え、基本的な文字列操作など)

表形式のデータをデータベースにインポートする必要があります。データは、複数の関係者からスプレッドシート(​​主にExcelファイル)を介して提供されます。これらの各ファイルの形式は似ていますが、同じではありません。データをインポートに適した最終的な形式に変換するには、さまざまな変換が必要になります。さらに、入力フォーマットは将来変更される可能性があります。入力ファイルを変換するために、通常のユーザーが実行および管理できるツールを探しています。

次に、私が実行しようとしている変換のいくつかをリストします。

  • 列を交換します:

入力は次のとおりです。

出力は

  • 列の名前を変更

入力は次のとおりです。

出力は

  • 上記の例のように、ルックアップテーブルに従って列をマップします。列Categoryで文字列「Car」が出現するたびに「automobile」に置き換えます。
  • 基本的な数学:価格列にいくつかの係数を掛けます
  • 基本的な文字列操作Price列の形式が「3x$45」であるとしましょう。これを、金額と価格の2つの列に分割します。
  • 値による行のフィルタリング:「高価」という単語を含むすべての行を除外します

次の要件があります。

  • これらのプラットフォームのいずれかで実行できます:Windows、Mac、Linux
  • オープンソース、フリーウェア、シェアウェアまたはコマーシャル
  • 変換はGUIを介して編集可能である必要があります
  • ツールを使用するためにエンドユーザーのトレーニングが必要な場合、それは問題ではありません
  • 1000〜50000行のオーダーで処理できます

基本的に、私はユーザーがデータを正規化してインポートできるようにするのに役立つグラフィカルツールを探しています。アダプターをたくさん作成する必要はありません。

これを解決するためにどのツールを使用しますか?

0 投票する
4 に答える
561 参照

sql-server - 2 つのテーブルが非常に似ている場合、それらを結合する必要があるのはいつですか?

イベントと写真があり、両方のコメントがあります。現在、2 つのコメント テーブルがあります。1 つはイベントに関連するコメント用で、もう 1 つは写真のコメント用です。スキーマは次のようになります。

私の質問は、それらを組み合わせて、別の相互参照表を追加する必要があるかどうかですが、適切に行う方法が思いつきません。これでいいと思いますが、どう思いますか?

編集

ウォルターの答え(およびいくつかの軽い読書)に基づいて、私はこれを思いつきました:

構造間に実際にパフォーマンスの違いはありますか? 私には、それは少し好みのようです。2 番目のスキーマには利点があります。イベントのコメントや写真のコメントに具体性を追加したい場合は、そのための別のテーブルがあり、両方で新しいプロパティを共有したい場合は、単一のテーブルがあります。新しいプロパティを追加します。

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

sql - 通常の第 3 形式ではないテーブルをクエリする

こんにちは、第 3 正規形で作成していない怠け者の開発者によって設計されたテーブルがあります。彼は、MM 関係を使用する代わりに、テーブルに配列を保存しました。また、アプリケーションが実行されているため、データベース スキーマを変更できません。

次のようにテーブルをクエリする必要があります。

SELECT * FROM myTable WHERE ユーザーグループ = 20

usergroup フィールドには次のようなデータが含まれます: 17,19,20 または、20 または 19 のみの場合もあります。

SELECT * FROM myTable WHERE usergroup LIKE 20 のように検索できますが、この場合、200 を含むフィールドにも一致します。

誰かアイデアはありますか?ありがとう

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

c# - C#での「正規化」手順

C#での3Dサーフェスメッシュの正規化手順について誰かに説明してもらえますか?

参考書には、次のような行があります。

GetNormalizeメソッドは、サーフェスの領域を[-1、1]の領域にマップするために使用されます。これにより、画面の表示が向上します。

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

ssis - SSISデータ移行:フラットテーブルを親+子/孫テーブルに分割

SQL Server 2005にある大きなフラットテーブルのデータを、親テーブルと複数の子テーブルで構成される新しいSQLServer2005スキーマに移行する必要があります。これは、SSISでのマージまたはマージ結合の反対のように見えますが、これを実現する方法がわかりません。任意の推奨事項は大歓迎です。他の人がこの種のことをどのように達成するかの例を見たことがありますか?

フラットソーステーブル[FlatSource]には280K未満のレコードといくつかのガベージデータがあるため、ある時点でこれらを処理する必要があります。しかし今のところ、ここに私が達成する必要があることの要点があります...

フラットソーステーブルは、ほとんどの場合、新しい親テーブル[Parent]にマップされます。つまり、[FlatSource]の各レコードについて、このレコードを[Parent]に移動する必要があります。

これが完了したら、この新しい親レコードのPKを記録し、多数の子レコードを追加する必要があります。このPKは、0〜4個のレコードを子テーブル[Child1]に追加するときに使用されます。基本的に、0〜4の列があり、入力された場合、[Parent]のPKを使用する[Child1]の新しいレコードが必要になります。

これが完了したら、[子]のPKを使用する0〜4個の新しいレコードを[孫]に入力する必要があります。

あなたが提供できる洞察に感謝します。私はC#でプロジェクトを開始しましたが、深く掘り下げるほど、SSISのタスクのように見えます。

心から、

ジョシュブレアゴールデン、CO