問題タブ [database-management]
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-server - Visual Studio と SQL Server Management Studio - あなたの選択
はじめに: 私は、ASP.NET 開発を行っており、すべてのデータベース ニーズに SQL Server 2005 を使用している小さな会社で働いています。
データベース側の開発 (つまり、テーブルの作成、ストアド プロシージャの作成など) に Visual Studio または SQL Server Management Studio を使用することの長所と短所について知りたいと思いました。
現在、すべてのデータベース タスクを Management Studio 内で実行していますが、代わりに Visual Studio を使用する利点があるかどうか疑問に思っていました。手順の変更やデータベースへのその他の変更を簡単に追跡できますか (それが Visual Studio 自体によるものか、ある種のソース管理によるものか (すぐに Subversion を実装する予定))。
個人的には、Management Studio での作業に問題はありませんが、Visual Studio を介して、私が慣れていない方法でより効率的で制御しやすくなる場合は、それについて聞いてみたいと思います.
EDIT:私の特定の開発環境は、SQL Sever 2005、Visual Studio 2005 Professional Edition、および Visual Studio Team System 2008 Development Edition であることに注意してください。チーム ファウンデーション サーバーやその他の追加機能は実行またはインストールされていません。
java - どのデータベースが効率的でしょうか?
Java で Web アプリケーションを開発する必要があります。これは、格納および操作するデータが大量にあるかなり大きなものです。Hibernate と Spring も使用する予定です。
現在、MSSQL Server、MySQL Server、Oracle、db2 など、多くのデータベースが利用できます。どれをお勧めしますか?
私が探している機能は
Java - データベース接続は効率的で実装が簡単でなければなりません
データベース サーバー管理の優れたユーザー インターフェイス
データ保存容量
サポート
そして明らかにコスト要因です。
すべての貴重な提案をいただければ幸いです。前もって感謝します :-)
編集済み: Web アプリケーションは Linux サーバーでホストされます。
django - Django: Query は Sqlite3 で正常に動作しますが、他のデータベース管理システムでは動作しません
「Q()」を使用した非常に長いクエリがありSqlite3
、非常にうまく機能しますが、postgresql
たとえばmysql
、postgresql:invalid input syntax for integer: "("
および mySQL: で奇妙なエラーが発生します。Truncated incorrect DOUBLE value: '('
そのクエリをmysqlで実行するにはどうすればよいですか? 私の間違いはどこですか?
そのクエリは次のとおりです。
sql - 3 値論理のコンテキストにおけるブール演算子と比較演算子の意味論
教授は私にこの質問をします:
3 値論理のコンテキストにおけるブール演算子と比較演算子のセマンティクスは何ですか?
彼がそれによって何を意味したのかわかりません。比較演算子とは 関係演算子と同じですか?セマンティクス?彼は、3 値論理の文脈におけるこれら 2 つの用語の「意味」について質問していますか?
ありがとう。
sql-server - SQL Server で一種のサブフォルダーとしてサブデータベースを作成する方法はありますか?
メイン DB があり、他のデータがセカンダリ データベースに格納されるアプリケーションを作成しています。セカンダリ データベースは、「プラグイン」アプローチに従います。SQL Server を使用しています。
アプリケーションを簡単にインストールすると、mainDB だけが作成されますが、オプションとして、より多くの「プラグイン」を有効にすることができ、プラグインごとに新しいデータベースが作成されます。
この選択をした理由は、既存のレガシー システムを使用する必要があり、これがプラグイン システムを実装する上で最も賢明なことだと考えたからです。
MainDB とプラグイン DB はまったく同じスキーマを持っています (基本的に、プラグイン DB にはいくつかの「特別なコンテンツ」があり、一種のテンプレートとして使用できるいくつかの重要なデータがあります。たとえば、アプリケーションでレター テンプレートを考えてください)。プラグイン DB は読み取り専用モードで使用されるため、「コンテンツのリポジトリ」です。「スマート」な点は、メイン アプリケーションを「プラグイン ライター」も使用できることです。彼らはコンテンツを挿入する DB を作成し、データベースのバックアップを作成することで潜在的なプラグインを作成します (これが、すべての DB が同じスキーマ)。
完全な PlugIn DB が破棄され、同じ名前の新しい DB が作成されるたびに、コンテンツのアップグレードが利用可能であるため、これらのプラグイン DB はインターネットからダウンロードされます。これは単純化のためであり、この DB のサイズは一般に小さいためです。
これでうまくいきましたが、プラグイン DB をメイン アプリケーション DB の「サブ DB」に強制できるように、DB を一種のツリー構造で編成することをお勧めします。
回避策として、次のような命名規則を使用することを考えています。
ApplicationDB (メインアプリケーション DB 用)
ApplicationDB_PlugIn_N (N 番目のプラグイン DB 用)
プラグイン 1 を検索すると、ApplicationDB_PlugIn_1 に接続しようとします。DB が見つからない場合、エラーが発生します。この状況は、たとえば、一部の DBA が ApplicationDB_Plugin_1 の名前を変更した場合に発生する可能性があります。
したがって、これらのプラグイン DB は実際には ApplicationDB のみに依存しているため、「サブフォルダーのトリックを実行」しようとしていました。
誰でもこれを行う方法を提案できますか? 上記で説明したこの自作プラグインのアプローチについてコメントしていただけますか?
追加情報 (バウンティ開始後):
MainDB では、すべてのプラグイン DB への接続情報を保存する予定です。基本的にはデータベース名です。複数のSQLサーバーログインを使用してMainDBにアクセスしても、舞台裏で単一のユーザー(通常は「sa」または管理者権限を持つ別のユーザー)になるようにシステムを設計したためです。
したがって、基本的に、複数のデータベースにクエリを実行する必要がある場合は、データベース名を使用してプラグインを区別します。データベース テーブルに PluginID というフィールドを明示的に作成する必要はありません。
どういうわけかそれはこのように機能します。メイン DB にプラグイン DB 名を保存します。プラグインの名前はわかっているので、すべてのプラグインからすべての GUNS を照会したい場合は、次のようにします。
したがって、「トリック」はプラグインを区別するためにdbnameを使用しています。今この作品ですが、私には少し「汚い」ようです。私の質問は、「想像できるより良いアプローチはありますか?」ということです。
asp.net - 開発者ごとに個別のデータベースインスタンスを用意する必要がありますか?
データベースベースのアプリケーションを開発するための最良の方法は何ですか?2つのアプローチがあります。
- すべての開発者のための1つの共通データベース。
- すべての開発者用に個別のデータベース。
それぞれの長所と短所は何ですか?そして、どちらがより良い方法ですか?
編集:複数の開発者がデータベースを更新することになっており、各開発者のマシンにはすでにSqlExpress2005があります。
編集:私たちのほとんどは、共通のデータベースを提案しています。ただし、開発者の1人がコードとデータベーススキーマを変更した場合。彼はコードの変更をコミットしていませんが、スキーマの変更は共通データベースに反映されています。他の開発者のコードを壊すことはないでしょうか。
mysql - データベース メモリ :: MySql Innodb 空フィールドと空でないフィールドのストレージ メモリの割り当て量 - varchar またはテキスト
私はデータベースが初めてで、mysql がいつどのようにメモリ空間を割り当てるのかわかりません。
MySql Innodbでは、空のフィールド(文字列が挿入されていない)と空でないフィールドのストレージメモリの割り当てはどれくらいですか?
私の質問の他の形式:
テーブルの作成時、またはフィールド内にデータが挿入されたときに、varchar/text フィールドの MySql Innodb でメモリがスペースを割り当てたときは?
ありがとうございました、
ヨセフ
deployment - コードとデータの追跡 / 展開
長い間、私たちはプロジェクトのリポジトリ内にデータを保持してきました。すべてを data/sql の下に保持し、各テーブルには独自の create_tablename.sql および data_tablename.sql ファイルがありました。
2 番目のプロジェクトを Scalr にデプロイしたところ、少し面倒であることに気付きました。
デプロイ方法:
プロジェクトを 3 つのアーカイブ (データ、コード、静的ファイル) に分割するスクリプトの「packageup」コレクションがあり、それらは S3 の 3 つの個別のバケットに保存されます。
ロールが起動するたびに、ファイルの 1 つがダウンロードされ (ロールに応じて、データ、nfs、または Web)、「パッケージ解除」スクリプトが各ロールのすべてをセットアップし、データを mysql にロードし、nfs をセットアップします。 .
サーバー イメージを保存したくないので、このようにします。常にバニラ インスタンスから開始し、さまざまな社内ビルド スクリプトを使用してすべてをゼロからインストールします。起動時間は問題ではありません (9 分でファームを使用できるようになります)。
問題は、新しい開発ビルドをセットアップしようとするたびに、適切なバージョンのデータベースを見つけようとするのが面倒なことです (いつでも、1 つのプロジェクトに対して約 4 つの開発ビルドがあります)。また、本番環境に入ると、git が詰まり始めています。SQL ファイルのサイズが合計で約 500 MB になるからです。
質問は:
他の人はどのようにデータベースを管理していますか? データを本番環境から開発環境に簡単に移行できるものを探していましたが、開発環境から本番環境にデータを移行することもできましたが、何も見つかりませんでした。
database - 階層を持つクラステーブル継承
私は3つのデータ型を持っています-a)共通の列b)階層-そしてデータベースを設計する方法を知りたいです。
トップレベルで、ディスカッションがあるとしましょう。その中には、DiscussionMessages、Files、Commentsがあります。それらはすべて共通のフィールド(UserID、CreateDate、Text)を持っていますが、一意の列(FileName、ContentTypeなど)も持っています。コメントは任意のタイプ(他のコメントも含む)に関連付けることができ、ファイルと同じです。
ここでいくつかの質問を調べた後、クラステーブル継承が必要だと思います。1つのベーステーブル(DiscussionParts)に共通の要素を格納し、次に各データ型に固有のテーブルを格納します。
DiscussionParts:PartID、DiscussionID、ParentID、PartType(M、F、C)、UserID、Text、CreateDate
メッセージ:MessageID、PartID、Title
ファイル:FileID、PartID、FileName、ContentType
コメント:CommentID、PartID、ソース
ParentID列は、階層を追跡するためのものです。DiscussionIDは、ユーザーが1つの簡単なクエリですべてのディスカッションでテキストを検索できるようにするためのものです。
これは、階層を持つクラステーブル継承の推奨設計ですか?