問題タブ [database]

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 投票する
4 に答える
6450 参照

mysql - Oracle テーブルと MySQL テーブルの同期を自動化する

私が勤務している大学では、データベース システムに Oracle を使用しています。現在、夜間に実行するプログラムを使用して、必要なものをいくつかのローカル Access テーブルにダウンロードし、テストのニーズに対応しています。現在、このためにアクセスが少なくなりつつあり、より大きなものが必要です。また、夜間のジョブは、(ネットワークの問題、テーブルの変更、悪いコードのため :)) 動作し続けるために定期的なメンテナンスを必要とします。

私は MySQL に最も精通しているので、テスト用の MySQL サーバーをセットアップしました。必要なテーブルを Oracle から MySQL に自動的にコピーする最良の方法は何ですか?

編集:答えを受け入れました。私は答えが好きではありませんが、さらなる調査と提供された他の答えの欠如に基づいて正しいようです。私の質問を熟考し、それに答えてくれてありがとう。

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

python - Django の親モデルで auto_now DateTimeField を更新する

Message と Attachment の 2 つのモデルがあります。各添付ファイルは、Attachment モデルの ForeignKey を使用して特定のメッセージに添付されます。どちらのモデルにも、updated という auto_now DateTimeField があります。添付ファイルが保存されると、関連するメッセージの更新されたフィールドも現在に設定されるようにしようとしています。これが私のコードです:

これは機能しますか?もし私に説明できるなら、なぜですか? そうでない場合、どうすればこれを達成できますか?

0 投票する
13 に答える
278103 参照

database - データベースフィールドの標準の長さのリスト

私はデータベーステーブルを設計していて、同じ愚かな質問をもう一度自問しています。名フィールドの長さはどれくらいですか?

名、姓、電子メールアドレスなど、最も一般的なフィールドの妥当な長さのリストを持っている人はいますか?

0 投票する
11 に答える
5086 参照

sql - リレーショナルデータベースで順序を表す

データベースにオブジェクトのコレクションがあります。フォトギャラリーの画像、カタログの製品、本の章など。各オブジェクトは行として表されます。これらの画像を任意に並べ替えてデータベースに保存し、オブジェクトを表示するときに正しい順序になるようにしたいと思います。

たとえば、私が本を書いていて、各章がオブジェクトであるとします。私は自分の本を書き、章を次の順序で並べます。

はじめに、アクセシビリティ、形態と機能、エラー、一貫性、結論、索引

それはエディターに送られ、次の推奨される順序で返されます。

はじめに、フォーム、機能、アクセシビリティ、一貫性、エラー、結論、インデックス

この順序を堅牢で効率的な方法でデータベースに保存するにはどうすればよいですか?

私は次のアイデアを持っていますが、それらのどれにもわくわくしていません。

  1. 配列。各行には注文IDがあり、注文が変更されると(削除とその後の挿入によって)、注文IDが更新されます。これにより、検索が簡単になりますORDER BYが、壊れやすいようです。

    // REMOVAL
    UPDATE ... SET orderingID=NULL WHERE orderingID=removedID
    UPDATE ... SET orderingID=orderingID-1 WHERE orderingID > removedID
    // INSERTION
    UPDATE ... SET orderingID=orderingID+1 WHERE orderingID > insertionID
    UPDATE ... SET orderID=insertionID WHERE ID=addedID

  2. リンクリスト。各行には、順序付けの次の行のIDの列があります。ORDER BYここではトラバーサルにコストがかかるようですが、私が考えていない方法で使用できる場合があります。

  3. スペース配列。orderingID(#1で使用)を大きく設定して、最初のオブジェクトが100、2番目のオブジェクトが200などになるようにします。次に、挿入が発生したら、それをに配置し(objectBefore + objectAfter)/2ます。もちろん、これは時々リバランスする必要があるので、物事が近すぎないようにします(フロートを使用しても、最終的に丸め誤差が発生します)。

これらのどれも私には特にエレガントに見えません。誰かがそれを行うためのより良い方法を持っていますか?

0 投票する
9 に答える
8258 参照

database - データベースの単体テスト

この夏、私は基本的な ASP.NET/SQL Server CRUD アプリを開発していましたが、単体テストは要件の 1 つでした。データベースに対してテストしようとしたときに、問題が発生しました。私の理解では、単体テストは次のようにする必要があります。

  • ステートレス
  • 互いに独立
  • 同じ結果で繰り返し可能、つまり永続的な変更がない

これらの要件は、データベース用に開発する場合、互いに矛盾しているように見えます。たとえば、挿入する行がまだそこにないことを確認せずに Insert() をテストすることはできないため、最初に Delete() を呼び出す必要があります。しかし、それらがまだそこにない場合はどうなりますか? 次に、まず Exists() 関数を呼び出す必要があります。

私の最終的な解決策には、非常に大きなセットアップ関数 (ヤッ!) と、最初に実行され、セットアップが問題なく実行されたことを示す空のテスト ケースが含まれていました。これは、テストのステートレス性を維持しながら、テストの独立性を犠牲にしています。

私が見つけた別の解決策は、 Roy Osherove の XtUnit のように、簡単にロールバックできるトランザクションで関数呼び出しをラップすることです。これは機能しますが、別のライブラリ、別の依存関係が含まれており、目前の問題に対する解決策としては少し重すぎるようです。

では、この状況に直面したとき、SO コミュニティは何をしたのでしょうか?


tgmdbm は次のように述べています。

通常、お気に入りの自動単体テスト フレームワークを使用して統合テストを実行します。そのため、混乱する人もいますが、同じルールに従っているわけではありません。多くのクラスの具体的な実装を含めることができます (それらは単体テストされているため)。具象クラスが相互に、およびデータベースとどのように相互作用するかをテストしています。

したがって、これを正しく読んだ場合、データ アクセス層を効果的に単体テストする方法は実際にはありません。または、データ アクセス レイヤーの「単体テスト」には、データベースとの実際のやり取りとは関係なく、クラスによって生成された SQL/コマンドなどのテストが含まれますか?

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

.net - .NetアプリケーションとCOM+オブジェクトの間でトランザクションを共有することは可能ですか?

私はしばらく前にいくつかのテストを行いましたが、これを機能させる方法がわかりませんでした。

材料:

  • COM +トランザクションオブジェクト(VB6で開発)

  • COM+コンポーネントを呼び出すIISの.NetWebアプリケーション(トランザクションあり)は
    、SQLデータベースの行を更新します

テスト:

.Netアプリケーションを実行し、例外を強制します。

結果:

.Netアプリケーションから行われた更新はロールバックされます。
COM+オブジェクトによって行われた更新はロールバックされません。

古いASPページからCOM+オブジェクトを呼び出すと、ロールバックが機能します。

「なに?!COM +や.Netは気にしないでね!」と思っている方もいらっしゃるかもしれませんが、この世界にはまだCOM+のコンポーネントがたくさんあるところがあります。誰かがこれに直面したことがあるかどうか、そしてあなたがこれを機能させる方法を理解したかどうか、私はただ興味がありました。

0 投票する
9 に答える
16596 参照

php - GD を使用して、アップロードされた画像のサイズを変更して PNG に変換するにはどうすればよいですか?

ユーザーがアバタータイプの画像をさまざまな形式 (少なくとも GIF、JPEG、および PNG ) でアップロードできるようにしたいのですが、それらをすべてPNG データベース BLOBとして保存します。画像がピクセル単位で大きすぎる場合は、DB 挿入の前にサイズを変更したいと考えています。

GD を使用してサイズ変更と PNG 変換を行う最良の方法は何ですか?

編集:悲しいことに、私が使用する必要があるサーバーではGDのみが利用可能であり、 ImageMagickは利用できません。

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

php - PHP/MySQL でデータ アクセスをカプセル化する良い方法は何ですか?

私の経験のほとんどは MSFT スタックに関するものですが、現在はサイド プロジェクトに取り組んでおり、LAMP スタック上に構築された安価なホスティングを使用して個人サイトを持つ人を支援しています。エクストラをインストールするオプションが限られているため、生のクエリを .php ファイルに埋め込まずにデータ アクセス コードを記述する方法を考えています。

.NET を使用する場合でも、物事をシンプルに保つのが好きです。私は通常、すべてのストアド プロシージャを記述し、プロシージャを実行してデータ セットを返すためのすべての呼び出しをラップするヘルパー クラスを用意しています。私は本格的な ORM を探しているわけではありませんが、それが進むべき道であり、この質問を見ている他の人がそれを探している可能性があります。

私は月額 7 ドルの GoDaddy アカウントを使用しているため、基本パッケージに既にインストールされているものに限定されていることを思い出してください。

編集: rix0rr、Alan、Anders、dragon に感謝します。それらすべてを確認します。ORM ソリューションは非常に人気があるため、よりオープンになるように質問を編集しました。

0 投票する
10 に答える
3931 参照

database - コードをどこに配置するか - データベース vs. アプリケーション?

私は約 6 年間、Web/デスクトップ アプリケーションを開発しています。私のキャリアの過程で、ストアド プロシージャを使用してデータベースに大量に記述されたアプリケーションに出くわしましたが、多くのアプリケーションでは、エンティティごとに (エンティティ レコードの読み取り、挿入、編集、および削除を行うための) いくつかの基本的なストアド プロシージャしかありませんでした。 .

エンタープライズ データベースに料金を支払った場合は、その機能を広範囲に使用できると主張する人を見てきました。多くの「オブジェクト指向アーキテクト」は、データベースに必要以上のものを入れるのは絶対的な犯罪であり、それらのクラスのメソッドを使用してアプリケーションを駆動できるはずだと私に言いましたか?

バランスはどこにあると思いますか?

ありがとう、クルーナル

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

c++ - MySQL サーバーと通信する最良の方法は何ですか?

私は C/C++ を使用する予定で、MySQL サーバーと通信する最良の方法を知りたいです。サーバーのインストールに付属のライブラリーを使用する必要がありますか? 公式以外に検討すべき良いライブラリはありますか?