問題タブ [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 投票する
3 に答える
334 参照

sql-server - サービスとしてのソフトウェア - データベース

メンバーシップ サービスとして販売する CRM Web アプリケーションを構築している場合、データベースを設計および展開するための最良の方法は何ですか?

テーブルごとに数百件のレコードを格納する 1 つのデータベースがありますか?それとも、異なるクライアントに複数のデータベースをデプロイしますか?

Flickr のようなサイトが使用していると思うので、単一のデータベースを使用することは本当に問題なのでしょうか?

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

sql - タグと URL のデータベース設計

URLを保存してタグに基づいて検索するJSPで、自分用の簡単なアプリケーションを構築しています。データベースを設計したい。私は SQL の知識が限られています。それでも、私は実際にやって学びたいと思っています。

URL のタグと URL 自体を格納するデータベースを作成したいと考えています。URL は、テーブルの列にテキスト (50) 以上 (またはその他の提案 ?) である可能性があります。URL を保存した後、タグを関連付けたいと思います (これも text(50) ですか?)。タグと URL をテーブルから分離する必要がありますか? もしそうなら、どのように URL とタグを相互に関連付ける必要がありますか?

私の質問と重複する可能性がありますが、データベースの設計 (上記で説明したように) と SQL 構文に関心があります。それでは、どうすればよいか教えてください。

私は正しい方法で進んでいますか?それとも、より良いデータベース設計を考える必要がありますか? データベース設計に関する提案はありますか?

0 投票する
7 に答える
995 参照

sql-server - 困難な時間的クロス テーブル データベース制約

データベース レベルで実施したい、特に難しいビジネス上の制約があります。データは本質的に財務的なものであるため、不整合から n 度まで保護する必要があります。このデータでビジネス層を信頼する必要はありません。私は「一時的」という言葉をやや大まかに使用しています。つまり、エンティティが時間の経過とともにどのように変化できるか、または変化できないかを制御するつもりです。

詳細をざっと見て、デザインは次のとおりです。

  • 請求書には、複数の料金が記載されている場合があります。
  • 手数料は、請求書の作成直後に請求書に割り当てられます。
  • 請求書はプロセスのある段階に達した後、「ロック」されます。
  • この時点から、この請求書に手数料を追加または削除することはできません。

以下は、簡略化されたデータ定義です。

ここでは、請求書の「ロック可能」な性質が表されていないことに気付くでしょう。それをどのように表現するか、またそれを直接表現する必要があるかどうかは、まだ未解決の問題です。

間違っているかもしれませんが、これはドメイン キーの正規形に変換できない配置の 1 つだと私は信じるようになりました。(結局のところ、実際に言う方法はありません。)とはいえ、高度に標準化されたソリューションへの希望はまだあります。

私はたまたま SQL Server 2008 でこれを実装しています (構文がヒントになっている可能性があります) が、私は好奇心旺盛なので、他の DBMS で機能するソリューションがあれば、それについても知りたいです。

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

.net - データベースに依存しない .NET アプリケーション

多くの製品開発者は、SQL サーバー、オラクル、DB2、MySql などの一般的な RDBMS とシームレスに連携する .NET アプリケーションを作成したいと考えています。Data アプリケーション ブロックを使用すると、構成に基づいてデータベース ドライバー (OracleClient、SQLClient、または OleDBClient) が動的に選択されます。

ただし、すべてのデータベースには独自の SQL があります。1 つの SQL コード ベースを普遍的に使用することを妨げる微妙な違いがあります。関数名が異なり、日付の処理方法が異なり、Identity 列の処理方法が異なるなどです。

Data Direct のサード パーティ製品を使用して、事前定義されたエスケープ シーケンスを使用して DB ニュートラル コードを記述することができます。

この問題に対処する Microsoft のツールまたは製品はありますか?

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

database - データベースの独立性

私たちは、複数のモジュールを持つ大規模なビジネス アプリケーションの設計の初期段階にあります。要件の 1 つは、アプリケーションがデータベースに依存しないこと、SQL Server、Oracle、MySQL、および DB2 をサポートすることです。

Web で読んだことによると、データベースの独立性は非常に悪い考えです。コードの保守が困難になり、サポートされているすべての DBMS で最も一般的でない機能を備えたデータベース設計になり、パフォーマンスとスケーラビリティが低下します。私の個人的な直感は、この機能が他のどの機能よりも複雑であるため、開発コストと時間が指数関数的に増加する可能性があるということです。コードは恐ろしいものになります。

しかし、この機能を無視するように説得することはできません。問題は、この問題に関するほとんどのデータが経験的なデータであり、そのケースを裏付ける数値が不足していることです。誰かがこの問題に関する数字でサポートされているデータを共有できる場合は、それをいただければ幸いです.

考えられる設計オプションの 1 つは、データベース層にエンティティ フレームワークを使用し、各 DBMS にプロバイダーを使用することです。私の個人的な感覚では、エンティティ フレームワークによって生成された SQL を制御できないため、ORM を使用せずに SQL ステートメントを手動で記述することは「必須」であり、データベースに依存しないシナリオでは、コードの DBMS に基づいて SQL を微調整する必要があります。サードパーティのエンティティ フレームワーク プロバイダーには、アプリケーションが持つ複雑なシナリオでのみ現れる大量のバグがあると思います。以前にデータベースに依存しないシナリオでエンティティ フレームワークを使用した経験がある人から聞きたいです。

また、チームが検討した可能性の 1 つは、最初の反復で 1 つの DBMS (SQL Server など) をサポートし、その後の反復で他の DBMS のサポートを追加することです。最初の DBMS のコードを書き始める前に、すべてのデータベースのすべての機能を知る必要があるため、この開発戦略は良くありません。この可能性についても、あなたから聞く必要があります。

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

c# - .NET の不可知論的接続ハンドラ

システム用の単純なデータベース アクセサーを開発していますが、PostgreSQL と Oracle (XXg) の 2 つのデータベースをサポートする必要があります。

例は次のようになります(すでにpgsqlで動作しています)

IDataReader、IDbConnection などの System.Data インターフェイスのみを使用して、これら 2 つのデータベースを処理するクラスを構築できるかどうか疑問に思っていました。例:

他の場合、私は (_connection is typeof(IDbConnection):

これを行う簡単な方法はありますか?

これらは単純なデータベース リクエストです。特別なものは必要ありません。小さなシステムです。

ご清聴ありがとうございました!

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

sql - 「シンプルな」在庫システムの設計

ローカルコンピュータハードウェアのリレーショナルデータベースシステムを非営利にしたい。実装方法を理解したい2つの相互に関連する機能があります。まず、部品の在庫を管理する必要があります。次に、コンピューターシステムの寄付を追跡する必要があります。また、コンピューターシステムの寄付を追跡する必要があります。

まず、部品の簡単な在庫があります。個々のパーツを追跡する必要はないので(とにかく追跡できませんでした)、モデル化したいのはカウントです。私の考えは、単純な数のパーツのさまざまな「ビン」を持つことです。したがって、ビデオカードを「在庫」ビンから「リサイクル」ビンに移動する場合、ビデオカードの在庫に-1、ビデオカードのリサイクルに+1が必要です。ビンは、pci-video-cards、agp-video-cardsなど、必要に応じてより明確に定義できます。または、在庫をカウントする場合、在庫から-3を実行し、+3を'に実行する必要があります。収縮」。

そのポイントは、たとえば、ビデオカードの数、ラムのスティックの数などをいつでも知ることです。ビンの2つの側面は、その中にどのような部分があるか(特定のレベルに関係なく、 「old-misc-card」や「32MB-3.3v-agp-video」など)、および「寄付」、「在庫」、「リサイクル」、「ストア」、「収縮」など。

また、部品の増減の傾向や履歴データを見たいので、いつでも在庫の照会を行う必要があります。

では、それを処理するためにテーブルをどのように設計しますか?複式簿記のようなものになると思います。from_bin、to_bin、amountがある「BinTransactions」というテーブルが1つあるかもしれません。金額は正の整数になります。在庫からどれだけの金額が取り出されるかを確認するクエリを作成する場合は、負の値にします。「SELECTSUM(amount)* -1 FROM BinTransactions WHERE from_bin ='inventory' AND time_period = ...」のようなものですか?

この2番目の部分は、コンピューターシステム自体です。それらは、どのような状態であっても寄付として提供されます。部品はそれらから取り出され、在庫に入れられたり、リサイクルされたりする場合があります。部品は在庫から取り出してコンピューターに入れることができます。私はコンピューターを作ることができたと思います

コンピューターはついに助成金として私たちのシステムから抜け出しますが、その構造には1つのレベルのネストがあります。これはコンピューター内のコンピューター部品のコレクションですが、モニター、キーボード、マウス、おそらくスピーカーもあります。また、大規模な助成金は、ネットワーク機器を備えた複数のシステムである可能性があります。グループ化の論理階層(パーツをコンピューターに、コンピューターを助成金に)を「ネスト」する必要がありますか、それともすべての寄付を1つの大きなパーツグループだけにするのは問題ありませんか?それが1つの大きなパーツのグループである場合、助成金から1台のコンピューターを取り戻した場合、どのパーツがどのコンピューターに対応しているかを必ずしも知ることはできません。また、「今四半期に34台の完全なシステムが寄付されました...」というレポートからも知りたいと思います。

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

ruby-on-rails - データベースに依存しない方法で日付を文字列として検索することは可能ですか?

PostgreSQLデータベースを備えたRubyonRailsアプリケーションがあります。いくつかのテーブルには、created_atおよびupdated_atタイムスタンプ属性があります。表示される場合、これらの日付はユーザーのロケールでフォーマットされます。たとえば、タイムスタンプ2009-10-15 16:30:00.435は文字列になります15.10.2009 - 16:30(この例の日付形式はdd.mm.yyyy - hh.mm)。

要件は、ユーザーが現在のロケールでフォーマットされた文字列であるかのように、日付でレコードを検索できる必要があることです。たとえば、検索する15.10.2009と2009年10月15日の日付の15.10レコードが返され、検索すると任意の年の10月15日の日付のレコードが返され、検索すると1515に一致するすべての日付(日、月、年)が返されます。ユーザーは日付の任意の部分を検索語として使用できるため、比較のために日付/タイムスタンプに変換することはできません。

1つの(遅い)方法は、すべてのレコードを取得し、日付をフォーマットして、その上で検索を実行することです。これは、最初にIDと日付のみを取得し、検索を実行してから、一致するレコードのデータをフェッチすることで高速化できます。ただし、行数が多い場合は、それでも低速になる可能性があります。

もう1つの(データベースに依存しない)方法は、PostgreSQLの関数または演算子を使用してデータベース内で日付を正しい形式にキャスト/フォーマットし、データベースに(PostgreSQLの正規表現演算子などを使用して)マッチングを実行させることです。

データベースに依存しない方法で(すべての行をフェッチせずに)これを効率的に行う方法はありますか?それとも、私が間違った方向に進んでいるので、別の方法で問題に取り組む必要があると思いますか?

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

database - データベース内のテーブルに、インデックス データ型の最大サイズよりも多くの行があるとどうなりますか?

たとえば、テーブルに unsigned int インデックスがある場合、 sizeof(unsigned int) よりも多くの行を取得するとどうなりますか? MySQL/PostgreSQL/MsSQL に興味があります。

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

database - データベースに依存しないために避けるべき orm.xml の機能は何ですか?

私は JPA での冒険に乗り出しており、可能な限りデータベースにとらわれないようにしたいと考えています。データベースに依存しないために避けるべき orm.xml の機能は何ですか?

たとえば、strategy="AUTO"次のように orm.xml で使用するとします。

...その後、MySQL は、AUTO_INCREMENTOracle にデプロイする必要がある場合に問題を引き起こす可能性がある (まだわかりません) 列として表示します。