問題タブ [database-agnostic]
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.
sql - ツリー データを格納する高速なリレーショナル メソッド (記事のスレッド化されたコメントなど)
記事に対するコメントを保存する cms があります。これらのコメントは、スレッド化されていてもスレッド化されていなくてもかまいません。技術的には同じですが、スレッド化されていない場合は返信欄が空欄になっているだけです。私のアプリケーションは sqlLite、MySQL、および pgsql で動作するため、かなり標準的な SQL が必要です。
私は現在コメントテーブルを持っています
私の質問は、データベース内のスレッド化されたコメントを最もよく表す方法を見つけ出すことです。おそらく、コンテンツなしでツリー セットをサポートする別のテーブルと、テキストを保持する単純なテーブルでしょうか? おそらく、それはすでにある方法ですか?おそらく別の方法ですか?
コメントがスレッド化されていない場合は、タイムスタンプで簡単に並べ替えることができます。
それらがスレッド化されている場合、私はこのようにソートします
ORDER BY からわかるように、関数ベースのインデックスは実際には Oracle にしか存在しないため、コメント クエリはインデックスを使用しません。コメントページを高速化するのを手伝ってください。
sql - タイムスタンプとして保存された生年月日のリストを返すためのデータベースに依存しない SQL
時間と分なしで保存されている生年月日で検索する必要があるが、検索する必要がある日付に時間と分が含まれている場合、日、月、年のみで日付が一致するすべての行を返す最良の方法は何ですか?
例: 01-JAN-50 10.22.06.000000000選択日
として保存
01-JAN-50 10.22.06.010101120
時間と分で日付を使用すると、SQL は正確なタイムスタンプを持つ行のみを返し、日、月、年だけの行は返しません。
SQL は、Oracle、SQLServer、MySQL、および DB2 で動作する必要があります。
c# - C# でタイムスタンプを作成する関数
C# で datetime からタイムスタンプを作成する方法はありますか? Compact Framework でも機能するミリ秒の精度値が必要です (DateTime.ToBinary() が CF に存在しないため)。
私の問題は、この値をデータベースに依存しない方法で保存したいので、後で並べ替えて、どの値が別の値よりも大きいかなどを見つけることができることです.
ruby-on-rails - Rails:このクエリをデータベースに依存しないようにする...?
私のモデルには、PostgreSQL 用に書かれた次の 2 行があります。
私は本番環境で PostgreSQL を実行していますが、SQLite3 で開発しています。データベースに依存しない方法でこれらの行を記述するにはどうすればよいですか?
ところで、「recorded_on」は次から形成されます。
language-agnostic - ID 列に推奨されるデータ型は?
この質問は以前に尋ねられた可能性が非常に高いと思いますが、StackOverflow に関する質問を少し検索しましたが、実際には答えが見つからなかったので、ここに行きます。重複を見つけた場合は、リンクしてください。
なんらかの理由で、主キー フィールドにGuid
s ( uniqueidentifier
MsSql 内) を使用することを好みますが、なぜこれが優れているのかはよくわかりません。最近、私が自分で説明した多くのチュートリアルでは、自動インクリメントint
が使用されています。私は両方で長所と短所を見ることができます:
- A
Guid
は常に同じサイズと長さであり、それらが不足することを心配する理由はありませんが、 に収まる数値が不足する前に保持できるレコード数には制限がありますint
。 int
(少なくとも C# では) null 許容型であり、データのクエリを実行するときにいくつかのショートカットが開きます。- そして
int
読みやすくなっています。 - ここで、少なくともさらにいくつかのことを思い付くことができると思います。
タイトルが示すように単純です:データベースの ID (主キー) 列に推奨されるデータ型は何ですか?
編集:いくつかの短い回答を受け取った後、このフォローアップの質問も追加する必要があります。それがなければ、あなたの答えは説得力がなく、教育的でもありません... ;)なぜそう思うのですか?
orm - 主キー-ネイティブキー、シーケンスキー、またはGUIDキー?
これとこれを読んでからこれを読んで(皮肉なことに他の2つを参照しています)、このトピックの議論がどれほど大きいのか疑問に思いますか?私はSQLServerの担当者なので、intの形式で自動生成されるIDを使用する傾向があります。ただし、サーバーとサーバー間の何らかの形式のレプリケーション、またはクライアントとサーバー間の同期が必要になることがわかっている場合は、GUIDをキーとして使用する傾向があります。
質問: 将来この可能性のあるスケーラビリティが必要になる可能性がある場合に備えて、すべてのテーブルで常にGUIDを主キーとして使用する必要がありますか?これにより、スキーマをプラットフォーム間でいつでも移行できるという点で、スキーマがより柔軟になりますか?これは、プラットフォーム固有の機能を埋め込まないことで、(フレーバーに関係なく)ORMの柔軟性を維持するのに役立ちますか?
反応:
@David Archer:あなたのコメントに従って、「自然キー」と言わないように投稿を更新しました。自然キーがそのように定義されているという点で、あなたは正しいです。訂正していただきありがとうございます。
database-design - データベース設計のための静的分析ツール
データベース層の静的分析ツールを探しています。PLSQL、TSQLコードを確認するためのいくつかの回答 を得ました。テーブルとその列の命名規則、外部キー制約とトリガーなどのデータベース設計を確認するために利用できるオプションは何ですか.
ApexSQL Enforceについて説明しているMSDN の記事がありますが、主に SQLServer 向けです。
database-design - このデータベース設計を正規化するにはどうすればよいですか?
私はクライアントのためにローイングレポートと統計システムを作成しています。現在、次のような構造になっています。
これはデータの行の例ですが、これをRowersテーブルやCoachesテーブルなどに拡張したいのですが、これをエントリテーブルにリンクする方法がわかりません。
誰かが私と共有できる知恵の言葉を持っていますか?
アップデート
チームは任意の数のコーチと漕ぎ手を持つことができ、漕ぎ手は多くのチーム(チームA、B、Cなど)に属することができ、チームは多くのコーチを持つことができます。