問題タブ [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.

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

sql - データベースに依存しません。ANSI SQL または ORM?

私は、ほとんどのコードが PL/SQL で記述されているプロジェクトに取り組んでいます。SQL Server をサポートするようにコードをリファクタリングする必要があります (可能であれば、将来的にはデータベースに依存しないようにする必要があります)。彼らは PL SQL コードを ANSI SQL に変換することを決定しましたが、何らかの理由でそれは良い考えではないように思えます。

ORM を使用する代わりに ANSI に変換することの長所と短所を教えてください。

ありがとう

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

java - ドメインクラスなしでquerydslでクエリを構築する方法

データベースに依存しない方法でクエリを作成する Java ライブラリを探しているときに、iciql、querydsl、jooq、joist、hibernate などを含む多くのライブラリに出会いました。

構成ファイルを必要とせず、動的スキーマで動作するものが必要でした。私のアプリケーションでは、実行時にデータベースとスキーマについて知るようになるので、スキーマ用の構成ファイルやドメイン クラスはありません。

これは querydsl の中心的な目標の 1 つと思われますが、querydsl のドキュメントを調べてみると、ドメイン クラスを使用して動的クエリを作成する例がたくさんありますが、スキーマに関する動的情報。

Jooq はそのような機能を提供します (参照: http://www.jooq.org/doc/3.2/manual/getting-started/use-cases/jooq-as-a-standalone-sql-builder/ ) 。私は自分の焦点を Oracle または MS SQL に拡大したいと考えています (好きではないかもしれませんが、サポートする必要があります)。

querydsl の経験がある人は、querydsl でそのようなことが可能かどうか、可能であればその方法を教えてください。

私の要件を満たすことができる他のものを誰かが知っていれば、それは本当にありがたいです.

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

sql - 前の行/次の行の SQL から値を取得する

私は3つのフィールドを持つテーブルを持っています。すなわち

私が達成したいこと...可能であれば...単一のクエリ(サブクエリの数に関係なく)とプレーンSQL(ピボット、CTEなどなし)で同じものを取得することです:前の各行からplaceidのtransferdate行または次の行に移動して、それらを使用して計算を行うことができます。つまり :

ストアド プロシージャまたは関数のカーソル、または一時テーブルを使用してそれを達成しました。組み込みの再帰関数 (つまり、Oracle) でそれを行う方法を知っていますが、私の問題は、それをレポートのサブクエリとして使用する必要があることです。 SQL ステートメントであるため、1 つのステートメントとしてプレーンな SQL コードである必要があります。

ご回答ありがとうございます

0 投票する
6 に答える
15477 参照

sql - 「group by」は自動的に「order by」を保証しますか?

「group by」句は、結果がそのキーで順序付けられることを自動的に保証しますか? 言い換えれば、次のように書くだけで十分ですか。

それとも書く必要がありますか

たとえば、MySQL ではその必要がないことはわかっていますが、SQL 実装全体で信頼できるかどうかを知りたいです。それは保証されていますか?

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

c# - データベース名リストを取得するための C# でのクロス データベース クエリ

C# で Entity Framework 6 (EF6) を使用しています。すべてのデータベース名リストを取得するために、DB に依存しないクエリを作成しようとしています。

例えば:

SQL Serverには次のようなものが存在します

MySQL で

Postgres、Oracle などと同様です。

したがって、問題は、EF6 が特定のデータベースによってこのリストを個別に取得する方法を提供するかどうかです。

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

database - 同じエンティティ間の複数のジャンクション テーブル

データベース スキーマを計画していますが、最善の方法がわからない状況に遭遇しました。私が提案した各ソリューションの長所と短所のリストを実際に探しています。おそらくデータベースのベスト プラクティスに適合する推奨事項が続きます。

したがって、問題は、それらの間に複数の多対多の関係を持つ 2 つのエンティティがあることです。2 つのテーブルは Teams と People です。チームは多くの人で構成され、個人はチームで 1 つまたは複数の役割を持つことができます。役割には、チーム リーダー、チーム メンバー、チーム フォロワーなどがあります。ある人は、特定のチームに対して複数の役割を持つ場合がありますが、理想的には、これらの役割のサブセットは相互に排他的であり、残りは排他的ではありません。

私が検討した解決策は次のとおりです。

1) ロールごとに個別のジャンクション テーブルを作成します。各テーブルの行の存在は、1 人の人物が 1 つのチームに属していることを意味し、特定のテーブルはチームでのその人物の役割を示します。相互に排他的なロールは、アプリケーション レベルで適用する必要があります。

2) 単一のジャンクション テーブルを作成し、そのテーブルに列挙を格納して、個人が持つロールを指定します。特定の人物とチームの組み合わせには、このテーブルに複数の行が含まれる場合があり、その人物がチームで持つ役割ごとに 1 つずつです。特定のロールの相互排他性は、アプリケーション レベルで実施する必要があります。

3) 単一のジャンクション テーブルを作成し、ロールごとに 1 つずつ、ブール フラグのリストをテーブルに保存します。個人とチームの組み合わせごとにテーブルに 1 つの行があり、フラグによってそのチームでのユーザーの役割が決まります。相互に排他的なすべてのロールがテーブルの 1 つの列挙型フィールドを共有できるため、データベース レベルで相互排他性を適用できます。

4) 2 つのジャンクション テーブルを作成します。これは、(2) と (1) を組み合わせたようなもので、相互排他性をデータベース レベルで強制することができます。相互に排他的なロールの列挙を持つ 1 つのジャンクション テーブルがあり、他の (列挙を持つ) ジャンクション テーブルはすべての非排他的なロールを処理します。

私が忘れているものはありますか?最も自然に見える選択肢はどれですか?

ありがとう

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

mysql - データベース INSERT INTO SET ... WHERE(SELECT ...)

Admin_User_Role_Idテーブルに値が存在しない場合、値をテーブルに挿入しようとしてAdmin_Idいます。挿入可能ですか!

私のテーブル構造:

試したが成功しなかったクエリ

可能だと思いますが、私の論理は間違っています。このクエリを正常に機能させるにはどうすればよいですか?