問題タブ [database-schema]

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 に答える
542 参照

sql - このデータベーステーブルを正規化する必要がありますか?

フィットネス情報を保存しているデータベースを引き継いで、特定のテーブルを1つのテーブルのままにするか、3つのテーブルに分割するかについて議論していました。

今日、次のフィールドを持つワークアウトと呼ばれる1つのテーブルがあります

id、exercise_id、reps、weight、date、person_id

したがって、1日に3つの異なるエクササイズを2セット行った場合、その日のテーブルには6つのレコードがあります。例えば:

id、exercise_id、reps、weight、date、person_id 1、1、10、100、1 / 1
/ 2010、10 2、1、10、100、1 / 1
/ 2010、10 3、1、10、100、1
/ 1 / 2010、10 4、2、10、100、1 / 1 /
2010、10 5、2、10、100、1 / 1 / 2010、10
6、2、10、100、1
/ 1/2010、 10

したがって、複数のレコードに冗長なデータ(date、personid、exercise_id)がある場合、これを3つのテーブルに正規化する必要があります。

WorkoutSummary: -id
-
date
--person_id

WorkoutExercise: -id
-
workout_id(WorkoutSummaryへの外部キー)
-exercise_id

WorkoutSets
--id
--workout_exercise_id(WorkoutExerciseへの外部キー)
--reps
--weight

欠点は、このリファクタリング後のクエリが遅くなることだと思います。これは、以前は結合がなかった同じクエリを実行するために3つのテーブルを結合する必要があるためです。リファクタリングの利点により、将来、重複を追加することなく、ワークアウトサマリーレベルまたはエクササイズレベルで新しいフィールドを追加できるようになります。

この議論についてのフィードバックはありますか?

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

xml - OracleDatabaseのテーブルをXMLファイルに変換する

データベース内のテーブル/ビューを指定して、XMLファイルを作成する必要があります。実際の要件は次のとおりです。コードは、入力パラメーターとしてテーブル/ビュー名を取得し、そのスキーマを読み取り、テーブル/ビューと同じ構造を持つ対応するXMLファイルを作成し、XMLをロードする必要があります。テーブル/ビューのデータ。ここで推奨される言語はJSPです。このアイデアの進め方を教えてください。

よろしくお願いします、Geetha

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

database - ORMをリバースエンジニアリングする

特定のスキーマを持つ[mysql]データベースが与えられた場合、そのデータベースのORMインターフェイスを生成することは可能ですか?そのphp、pythonまたはperlであるかどうかは関係ありません。

言い換えれば、私はデータベースを持っていて、それにいくつかの質問をしなければなりません。たくさんのSQLクエリ(大丈夫、数十)を作成することもできますが、これについて考えるのははるかに興味深いことです。

これは有効な質問ですか?私はORMの設計のバックグラウンドを持っていませんが、いくつか(django、symfonyなど)を使用しました。

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

mysql - 多対多のテーブルで自己結合を行うスケーラブルな方法

私は次のようなテーブル構造を持っています:

私の質問は:

多くの統計についてprofile_stat_idとprofile_stat_value_idを持つすべてのユーザーを検索するクエリを評価するにはどうすればよいですか?

私は内部自己結合を試みましたが、多くの統計を検索するとすぐに夢中になります。また、実際のuser_profileテーブルでカウントを実行しようとしましたが、それははるかに優れていますが、それでも低速です。

私が見逃している魔法はありますか?user_profileテーブルに約1,000万行あり、クエリに数秒以上かかることはありません。それは可能ですか?

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

sql-server-2008 - ISql100DatabaseEncryptionKeyがスキーマ比較をブロックしているのはなぜですか

一部のSQLServer2008データベースでVisualStudio2010のスキーマ比較を実行しようとしています。しかし、次のエラーが発生します。それはどういう意味ですか、どうすれば無視できますか?

更新:「更新の書き込み」は実際に機能します。しかし、「エディターにエクスポート」することはできません。

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

visual-studio-2010 - Visual Studio 2010 データベース プロジェクトはスキーマ名を理解できなくなりましたか?

Visual Studio 2008 データベース プロジェクトを VS2010 にアップグレードしようとしましたが、実際にはかなり混乱しています。何百もの警告、すべて未解決の参照。Visual Studio がスキーマ名 (別名所有権) を理解していないことが原因のようです。たとえば、デフォルトの dbo スキーマは次のとおりです。

大丈夫ですが:

未解決の参照を提供します。VS2008で動作しました。

また、dbo の省略形である二重ドット:

もう機能しません。

プロジェクトのプロパティ ウィンドウで、参照を正しいサーバー (変換後に失われた) に復元しましたが、役に立ちませんでした。

これはかなり基本的なようですが、これを解決する方法がわかりません。どんな助けでも大歓迎です。

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

sql - SQLServerのすべてのデータベースのすべてのテーブルの列名を見つける方法

すべてのデータベースのすべてのテーブルですべての列名を検索したい。私のためにそれを行うことができるクエリはありますか?

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

python - 開発者のチームとDBAなしで共通のデータベーススキーマを維持するためのいくつかの戦略は何ですか?

DBAを使用せずに多くの(10人以上の)開発者間でデータベースの変更を維持および同期するという問題に他の人がどのように取り組んでいるかについて興味がありますか?基本的に、誰かがデータベースに変更を加えたい場合、それを行うためのいくつかの戦略は何ですか?(つまり、「車」モデルを作成したので、適切なDDLをデータベースなどに適用したいと思います。)

私たちは主にPythonショップであり、ORMはSQLAlchemyです。以前は、ORMを使用してモデルを作成するような方法でモデルを作成していましたが、最近、次の理由でこれを廃止しました。

  • ORMを使用して変更を追跡できませんでした
  • ORMの状態がデータベースと同期していませんでした(たとえば、主にインデックスと一意の制約に関連する多くの違い)
  • 開発者がチームへの電子メールを介してデータベースの変更を文書化しない限り、データベースの変更を監査する方法はありませんでした。

この問題に対する私たちの解決策は、基本的に、データベースへのすべての変更をチェックし、受け入れられたすべてのデータベース変更をaccepted_db_changes.sqlファイルに適用する「ゲートキーパー」個人を配置することでした。これにより、データベース変更を行う必要がある開発者は、要求をproposed_db_changes.sqlファイルに入れます。このファイルをチェックインし、更新されると、開発マシン上の個人データベースに変更を適用します。モデルにインデックスや制約を作成するのではなく、データベースに明示的に適用します。

データベーススキーマを維持するためのいくつかの戦略とは何か、そして私たちの戦略が合理的であると思われるかどうかを知りたいです。

ありがとう!

0 投票する
8 に答える
14457 参照

sql-server - SQL Server 2008-コマンドラインを使用してデータベーススクリプト(スキーマ+データ)を作成する

SSMSで、データベースの[タスク]-> [スクリプトの生成]をクリックすると、出力スクリプトが表示されます。

非グラフィカルツールで同じことを行うにはどうすればよいですか?

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

.net - DB 速度をテストするにはどうすればよいですか? (学ぶ)

データベースを設計しました。インデックス付きの列も、最適化のためのコードもありません。私は特定の列を頻繁に検索するので、特定の列にインデックスを付ける必要があると確信しています。

私の質問は、データベースの一部が遅くなるかどうかをテストするにはどうすればよいですか? ATM 私は sqlite を使用しており、ホスト プロバイダーに基づいて MS Sql または MySql に切り替える予定です。各テーブルに 100,000 レコードを作成するだけで十分ですか? それとも、それは常にsqliteで高速で、1milを実行する必要がありますか? データベースが遅くなる前に 10mil 必要ですか?

また、どのように時間を計りますか?私は C# を使用しているので、StopWatch を使用する必要がありますか、または使用すべき ADO.NET/Sqlite 関数はありますか?