問題タブ [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.
c# - 電話番号の正規化:既存のライブラリはありますか?
電話番号を一意の識別子として使用しているシステムがあります。このため、正規化された形式を使用して、すべての電話番号をフォーマットします。ソースデータを制御できないため、DBに追加する前に、これらの数値を自分で解析してフォーマットする必要があります。
電話番号を読み取って正規化された電話フォーマットを出力できるパーサーを作成しようとしていますが、その前に、電話番号のフォーマットに使用できる既存のライブラリを誰かが知っているかどうか疑問に思いました。
そこに既存のライブラリがない場合、この機能を作成するときに、明白ではない可能性があることを覚えておく必要がありますか?
現在、私のシステムは米国の番号のみを扱っていますが、必要になる可能性があるため、万が一の場合に備えて国際番号のサポートを含めるようにしています。
編集私はC#.NET2.0を使用していることを言及するのを忘れました。
sql - 相互に排他的な 1:n の関係をモデル化するためにテーブルを構造化する方法
次のテーブル構造では:
私は、favoriteFoods テーブルで外部キー制約を使用するのをやめて、単純にタイプ フィールドを favoriteFoods テーブルに追加して、果物と野菜を区別できることに気付きました。しかし、必要な外部キー制約を実際に作成できるようにするには、どのようにテーブルを構成すればよいでしょうか?
database - 過正規化
データベース設計が過度に正規化されていると説明されるのはいつですか? この特徴付けは絶対的なものですか?それとも、アプリケーションでの使用方法に依存していますか? ありがとう。
database-design - このデータへのアクセスを最適化する方法は?
5年間の200社の株価で構成されるテーブルがあります。これは、会社名、始値、高値、安値、終値、日付で構成される 1 つの大きなテーブルです。
同じ処理を行う必要があり、ユーザー [最大 10 人] がこのデータベースにアクセスして、さまざまなパラメーターとクエリのセットに関するレポートを取得できるようにする必要があります。
データベースをそのまま使用する必要がありますか、それともより最適化するための提案はありますか。
ありがとう。
database-design - これはOKデータベースの設計コンセプトですか?
編集1:テーブルとそれらの関係の名前を変更して、質問を解決しようとしました。EDIT2:3つのDBテーブルに保持しているデータの種類を見ないでください。それらはその場で構成されました。それらは私の現実世界のシナリオではありません(そして、いいえ、私は私の現実世界のデータについて話すことができません..実際、それは現在1人の親と6人の子供です)。データの種類を無視して、いくつかのデータが必要であるという事実を確認してください。EDIT3:2つのFKは0または1対1の関係です。0から多くではありません。1対1ではありません。0または1対1の関係と1対1の関係を避けようとしているので、外部結合は必要ありませんが、内部結合が必要です。
質問:提案されたデータベース設計が良い/悪い/ラメなどであるかどうかを知る必要があります。
問題:今日、インデックス付きビューを作成しようとしましたが、テーブルに外部結合があるために失敗しました。はぁ。だから私はこれを次のデザインのように修正できるかどうか疑問に思っていました:
- 3つのテーブル。
- table_Userはtable_AddressにFKを持っています
- table_Userはtable_VehicleにFKを持っています
- 等..
テーブルBとC(現在はルックアップテーブルのように機能します)があります。
- Id INT IDENTITY PK
- 説明NVARCHAR(100)NULLABLE
null許容型に気づきましたか?このように、table_Userの何かがtable_Addressに存在しません...フィールドはnullです(内部結合のため)。
以前、LEFT OUTER JOINを作成したので、table_bにデータがない場合は、各フィールドの結果がnullになります。
ここにいくつかのデータ例を投げます...
Table_User
- ID:1、名前:フレッド、アドレスID:1(NULL)
- ID:2、名前:ジョー、住所ID:2(1スミスストリート.....)
- ID:3、名前:ジェーン、住所ID:2(1スミスストリート.....)
Table_Address
- ID:1、説明= NULL
- ID:2、説明=1スミスストリート
等
それで、私はついにこれをすべてインデックス付きビューに入れることができます。(私の実際のシナリオには約8つのテーブルがあります)。
注:DBはMicrosoft Sql Server 2008ですが、これはどのDBにも当てはまります。
Q1:そのデザインは大丈夫ですか?
Q2:では、ここで行っているのは、データを正規化することですよね?内部結合を一緒に保つことによって。
Q3:最後に、これで問題がない場合は、一意の制約、キー、インデックスなどを使用して、テーブル内のデータ(住所など)が一意であることを確認することもできますか(わかりません)。適切な用語の)。
達人に感謝します!
database-design - ユーザーが生成した大規模な会社名のデータセットを正規化するにはどうすればよいですか?
ユースケース: ユーザー 1 が 100 の会社名 (例: Microsoft、Bank of Sierra) をアップロードします。
ユーザー 2 が 100 の会社名をアップロードします (例: The Gap、Uservoice、Microsoft, Inc.)。
ユーザー 1 の Microsoft の概念とユーザー 2 の Microsoft の概念を、Microsoft の一意のインデックスを持つ中央管理エンティティにマップする必要があります。
誰かが中央リポジトリにない名前をアップロードした場合は、そのまま入力してもらいたいと思います。しかし、最初のエントリのスペルが間違っている場合 (たとえば、Virgin Mobile ではなく Vergin Mobile?) どうすればそれを修正し、新しいアップロードを同じインデックスに関連付けることができるでしょうか?
技術的には、中央リポジトリは完全に別のデータベースにする必要がありますか? ユーザーが生成した情報でさえ、それに対して発生するビジネス トランザクションとは別のデータベースに格納する必要がありますか?
問題の大規模な定義から始めて、あなたの入力でそれをチャンクすることを望んでいます、ありがとう.
database - 主キーに文字値を使用しても問題ありませんか?
文字ベースの ID フィールドを使用する場合と比較して、データベース テーブルで一意の数値 ID フィールドを使用する場合、パフォーマンスの向上やベスト プラクティスはありますか?
たとえば、2 つのテーブルがあるとします。
アスリート
ID ... 17、名前... Rickey Henderson、チーム ID ... 28
チーム
チーム ID ... 28、チーム名...オークランド
チームIDが「28」または「31」ではなく、「OAK」または「SD」の場合、何千人ものプレーヤーがいるアスリートテーブルが読みやすくなります。teamidの値が一意であり、文字の形で一貫していることを当然のことと考えてみましょう。
文字を使用できることは知っていますが、何らかの理由でインデックス作成やフィルタリングなどに悪い考えはありますか?
これらのテーブルは例よりも複雑であるため、正規化の引数は無視してください。
sql - SQL結合と単一テーブル:パフォーマンスの違い?
私はデータベースを正規化する慣行に固執しようとしていますが、それは複数の結合クエリを実行する必要につながります. 多くのクエリが結合を使用する場合と、冗長データを含む可能性のある単一のテーブルを呼び出す場合、パフォーマンスが低下しますか?
algorithm - 悪い信号をフィルタリング/正規化するアルゴリズム
GPS を使用した追跡アプリケーションに取り組んでいます。大丈夫なのですが、通行止めや悪天候などで点数がずれることがあります。それらをプロットすると、多くのホップ/ジャンプがあり、正しく見えません。
悪い信号を除外するには、どのアルゴリズムを実行すればよいですか? 私にはぼかしアルゴリズムのアプリケーションのように見えますが、どう思いますか?