問題タブ [schema]
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.
database-design - リレーショナル データベースにどのようにトライを格納しますか?
プレフィックストライがあります。リレーショナル データベースでこの構造を表すために推奨されるスキーマは何ですか? 効率を維持するには、部分文字列の一致が必要です。
database - データベーススキーマ-予約/可用性システム
最近、架空のWebベースの予約システムに関するインタビューの質問と、重複を最小限に抑え、柔軟性を最大化するためにデータベーススキーマを設計する方法について質問されました。
ユースケースは、管理者がプロパティの可用性をシステムに入力することです。複数の期間が設定されている可能性があります。たとえば、2009年4月1日から2009年4月14日まで、および2009年7月3日から2009年7月21日までです。
その場合、ユーザーは、同等またはそれより短い期間で利用可能になった期間にのみ予約を行うことができます。
この情報をデータベースにどのように保存しますか?
次のような単純な(本当に単純化された)ものを使用しますか?
次に、予約された期間が空白になっている可用性のカレンダーを表示するWebページを簡単に作成できますか。このデータベーススキーマからレポートを作成するのは簡単でしょうか?見た目と同じくらい簡単ですか?
xml - XML スキーマの大文字と小文字を区別しない単純型文字列の列挙
XML スキーマ (.xsd) ファイルで、大文字と小文字を区別しない文字列列挙型が必要です。次のようにすることで、大文字と小文字を区別しないようにすることができます。
唯一の問題は、列挙値を取得できないことです。Visual Studio を使用して XML を記述しても、適切な Intellesense が得られません。以下は列挙型を示しますが、大文字と小文字が区別されます。
これにより列挙が得られますが、「On」、「ON」、または「oN」の値を受け取った場合、検証に失敗します。
「オン」、「オフ」の列挙が必要で、大文字と小文字を区別しないバージョンのエントリを許可します。
.net - NHibernate スキーマ生成でデータベース テーブル スキーマを更新する方法は?
テーブルスキーマを削除して再作成するのではなく、マッピングを使用してNHibernate構成を使用してテーブルスキーマを更新する方法を理解しようとしています。
現在NHibernate.Tool.hbm2ddl.SchemaExport
、FluentNHibernate で obj を使用して、mysql データベースのデータベース スキーマを生成しています。これが大きな問題だとは言えませんがSchemaExport.Execute
、データベースを呼び出すたびに、すべてのテーブルが削除されてから再作成されます。
可能であれば、データを保持している既存のテーブル構造を更新することができれば、よりクールになります。しかし、私は一般的にコード生成が好きではないので、商用製品やコードジェネレーターを実際に使用したくありません。したがって、うまくいけば、どのような回答でもこれらの警告を念頭に置いてください。
sql - カテゴリのタグ付けをサポートするデータベース スキーマを設計する方法は?
各タグがカテゴリにグループ化されていることを除いて、タグ付けのためのデータベース設計のようなものにしようとしています。
たとえば、車両に関するデータベースがあるとします。実際には車両についてあまり知らないとしましょう。そのため、すべての車両にある列を指定することはできません。したがって、車両に情報を「タグ付け」します。
ご覧のとおり、すべての車が製造元とモデルでタグ付けされていますが、他のカテゴリはすべて一致しているわけではありません。車は各カテゴリの 1 つだけを持つことができることに注意してください。すなわち。車には 1 つのメーカーしかありません。
すべてのメルセデスの検索をサポートするデータベース、またはすべてのメーカーを一覧表示できるデータベースを設計したいと考えています。
私の現在のデザインは次のようなものです:
各車のメーカーが 1 つしかない場合を除いて、適切な主キーと外部キーがすべて適切に配置されています。それともできますか?
vehicleTags の複合主キーに外部キー制約を追加できますか? すなわち。複合主キー (vid、tid) を vehicleTags に追加できるのは、同じ vid に対して既に tid が存在しないような行がまだ vehicleTags にない場合に限るような制約を追加できますか?同じシド?
私の推測ではノーです。この問題の解決策は、cid 列を vehicleTags に追加し、新しい複合主キー (vid、cid) を作成することだと思います。次のようになります。
これにより、自動車に 2 つのメーカーが存在することはなくなりますが、tid が cid にあるという情報を複製しました。
私のスキーマはどうあるべきですか?
Tom は、私のデータベース スキーマにあるこの問題に、以前の質問であるHow do you do many to many table outside join?で気付きました。
編集
例では、製造は実際には車両テーブルの列である必要があることを知っていますが、それができないとしましょう。例はほんの一例です。
xsd - ショッピングカートの「注文」を表すXSDを探しています
ショッピングカートの「注文」を表すXMLスキーマを作成しようとしています
これにより、ショッピングカートの実装が完全に抽象化され、最終的には、このスキーマを使用して注文を送信するパートナーがサポートされるようになります。(はい、このスキーマを既存のカートに統合することを計画しています)
オリジナルの注文アイテム、繰り返し発送アイテム、ドメイン固有のものが含まれます。私はこれを構築することはかなり可能ですが、少なくとも私が基礎を置くことができるこのようなものがたくさんあるのだろうかと思っていました。
このような特定のスキーマ要素には標準があることは知っていますが、どれが最良/標準であり、それらをどのように拡張できるかなどを見失っています。
明らかに、パートナーに「注文」を送ってもらいたい場合は、標準が存在する場合はそれを使用したいと思います。
authentication - 認証/認可スキーマ
認証/承認スキーマのベスト プラクティス データ モデルはありますか?
xml - XMLスキーマで相互に排他的な属性を行う方法は?
2 つの XML 属性を相互に排他的にしようとしています。この種のシナリオをキャプチャする XSD スキーマを作成するにはどうすればよいでしょうか?
私はこれらのうちの1つを持っていたいです
だがしかし
database - スキーマ設計
あなたがGMdbaであり、GMモデルを中心に設計する必要があるとしましょう
これを行う方が良いですか?
- table_model
- タイプ{キャデラック、土星、シボレー}
それともこれ?
- table_cadillac_model
- table_saturn_model
- table_chevrolet_model
ビジネスラインにモデルの同じ列があり、サブタイプごとに100万を超えるレコードがあるとします。
編集:
- CRUDがたくさんあります
- 非常にプロセッサを集中的に使用するレポートがたくさんあります
- どちらのスキーマにも、モデルごとに3〜5個のレコードを含むmodel_detailテーブルがあり、モデルごとに詳細が異なります(土星モデルにキャデラックの詳細を追加することはできません)。
- 開発チームには、データベースの複雑さに関する問題はありません。
- これが正規化の質問であるかどうかはよくわかりません。構造は同じですが、異なるエンティティと見なされる場合があります。
編集:
構造を複数のテーブルに分割する理由-ビジネスラインはパーツに関して異なるビジネスルールを持っている可能性があります-addModelDetail()はビジネスラインごとに異なる可能性があります(データ形式は同じですが)-高い追加/更新アクティビティ-パーティション化されたパフォーマンスの向上単一の構造ではなく構造(私は推測していますが、ここではわかりません)?
これはEAV問題のバリエーションだと思います。EAV設計として提示された場合、単一のテーブル構造は一般的に悪い考えとして投票されます。このようにポーズをとると、通常、単一のテーブル構造が良いアイデアとして投票されます。面白い...
最も興味深い答えは、2つの異なる構造を持つことだと思います。1つはクラッド用、もう1つはレポート用です。レポート用に連結/フラット化されたビューを試し、クラッド用に複数のテーブルを試して、それがどのように機能するかを確認すると思います。
database - データベース スキーマの設計
私はデータベース設計にまったく慣れていないので、ベスト プラクティスについていくつか質問があり、本当に学びたいと思っています。私はデータベース スキーマを設計しています。要件をよく理解していますが、今はそれを白黒にする問題です。
この疑似データベース レイアウトには、顧客のテーブル、注文のテーブル、製品のテーブルがあります。
TBL_PRODUCTS:
ID
説明
詳細
TBL_CUSTOMER:
ID
名
アドレス
TBL_ORDER:
ID
TBL_CUSTOMER.ID
prod1
prod2
prod3
など
各「注文」には 1 人の顧客しかいませんが、「製品」はいくつでも持つことができます。
問題は、私の場合、特定の注文の製品が任意の量 (1 回の注文で数百) になる可能性があることです。さらに、注文の各製品には「数量」以上のものが必要ですが、ページにまたがる値を持つことができます。特定の注文の特定の製品のテキストの。私の質問は、その情報をどのように保存できますか?
可変長配列を単一のフィールド値として保存できないと仮定すると、他のオプションは、何らかの方法で区切られ、アプリケーションでコードによって分割される文字列を持つことです。注文には、たとえば 100 個の製品があり、各製品には小さな int のみ、または 5000 文字またはフリー テキスト (またはその間の任意のもの) があり、その注文にのみ固有です。
その上、各注文には独自の監査証跡が必要です。これは、注文の存続期間中に多くのことが発生する可能性があるためです。監査証跡には通常の情報 (ユーザー、時刻/日付、アクション) が含まれ、任意の長さにすることができます。特定の注文の監査証跡を、注文が作成されたときに作成される独自のテーブル (非常に長くなる可能性があるため) に保存しますか?
データベース設計のテクニックについてもっと学べる場所はありますか?