問題タブ [relational-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 に答える
2531 参照

excel - リレーショナル データを Excel ピボット テーブルに取得できますか

セラーにあるすべてのワインのボトル、いつ購入したか、いくら支払ったかなどをリストしたシートがあります (例としてワインを取り上げましょう)。

「フルーティ、白」などのカンマ区切りのタグでワインを説明するコラムがあります。

説明をフィルター列として、そのデータからピボット テーブルを作成しました。ただし、「白」でフィルタリングすることはできません。「ドライ、ホワイト」、「ホワイト、クリスプ」など、「ホワイト」を含むすべての説明を見つけなければなりません。

RDBMS のバックグラウンドを持つ私の自然な傾向は、wine 行に対してキーが設定された独自のテーブルにタグを配置して、wine 行ごとに 0 個以上のタグ行が存在するようにすることです。

どうすれば、一体どうやってそれを使ってワインの行をフィルタリングできますか?

0 投票する
5 に答える
794 参照

c# - リストアイテム削除問題

膨大なコードを恐れないでください。問題は一般的です。問題をよりよく理解するためにコードを提供しました。

多対多の関係を持つテーブルを操作する標準的なアプローチを見つけようとしています。そして、私はほとんど終わりました。ここTeacherに とCourseM:M の関係があります。クラスを次のように設計しました。

Teacher- クラス:

CourseTeacher- クラスとまったく同じです。マッピング クラスは次のとおりです。

今私の問題は、このコードが機能していないということですか?

おそらく一致が見つからないか、get アクセサーが読み取り専用リストを返しているため、これは機能していません。

これを達成するには、教師/コース - クラスをどのようにリファクタリングする必要がありますか?

例外なし。永続化コードに問題はありません。アイテムは削除されていません。

なぜprofessorXyz.Items.Contains(cpp);false を返すのですか?

何をチェックしますか?

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

django - スケジューラのリレーショナル モデルを理解する

Django アプリを作成するためにリレーショナル モデルを解決しようとしています。

私はマクドナルドの乗組員のスケジューラーのようなものにはなりません。私は、特定の平日の特定の時間に誰が働くかを示す色付きのピンが付いたグリッドを意味します。

いくつかの例をグーグルで検索しようとしましたが、何も見つかりませんでした。モデルを構築してアプリにコーディングするには、いくつかの理論/参考文献が必要です。

前もって感謝します

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

database-design - xml スキーマをリレーショナル モデルに変換する

XMLスキーマをリレーショナルモデルに変換する方法を知っていますか? 必要な手順は何ですか? より正確には、XML スキーマだけを見て、テーブル名、列名、およびそれらのテーブルの関係がリレーショナル モデルでどのようになるかをどのように把握できますか?

チュートリアルのリンク、例がある場合は、私と共有してください。これについてご協力いただき、誠にありがとうございます。

ありがとう

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

relational-database - 「リレーショナルデータベース」の「リレーショナル」は私たちにとって何を意味しますか?

リレーショナルデータベースは、あるテーブルのフィールドが他のテーブルの行にリンクしているデータベースです。このようなものです。

しかし、Web開発者としての私にとってそれが何を意味するのか理解できません!

私が知っているように、結合とネストされた選択を使用したクエリは、パフォーマンスを低下させる可能性があります(特に、数十の結合を使用したdrupalスタイルのクエリ)。さらに、DBへのクエリはボトルネックであり、選択したすべてのリクエストをキャッシュする必要のあるユーザーがたくさんいます。

すべての選択リクエストをキャッシュする場合は、複雑ではなく単純なリクエストをキャッシュすることをお勧めします。「select*from tbl1 where id=123」と「select*from tbl2 where id=456」または「select*from tbl1、tbl2 where ...」のいずれかをキャッシュできますが、2番目の方法を選択した場合はオブジェクトのすべての組み合わせをキャッシュする必要があります-それはクールではありません。

さて、今は「select * from tbl1 where id = 123」、「select id from tbl1 order by id limit 0、30」のような非常に単純なクエリのみを使用してキャッシュします(または、最初のタイプのクエリのみをキャッシュできます。 )。そこにはクエリがあり、それほど単純ではないINSERT、DELETE、およびUPDATEは、私たちが必要とするすべてのものであり、私たちが使用するすべてのものです!

ご覧のとおり、すべてのリレーショナルロジックは、SQLではなく、アプリケーションのメイン言語になっています。では、なぜこのような関係的なものがすべて必要なのですか?それらはどういう意味ですか?「リレーショナル」タイプには、他のタイプにはないものがありますが、それは必要ですか?リレーショナル機能を使用しない場合、パフォーマンスに関心があるとしても、なぜ誰もがMySQLやその他のリレーショナルデータベースを使用するのでしょうか。

このタイプのデータベースが標準になりました。なんで?私は見当もつかない。GAEのオンを除いて、非リレーショナルデータベースを使用している人のことはほとんど聞いたことがありません。

私は何かが足りないのですか?

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

database - MySQLリレーショナルデータベースでデータを選択中に空のセット

数十のテーブルを持つリレーショナルMySQLデータベースがあります...クエリの長​​さは1000フィートで、ほぼすべてのテーブルからデータを選択します...'メイン'テーブルもあり、他のすべてのテーブルはそのテーブルを参照しています。メインテーブルに1つの行を入力し、他のテーブルにその行のすべてのリレーションを作成すると、クエリは正常に機能します。ただし、メインテーブルに1つの行を入力し、他の場所に何も入力しないと、空のセットが取得されます。しかし、少なくともその情報を私の結果に取り入れたいと思います。または、もちろん、一部のテーブルにそのレコード(行)の情報がないという事実に関係なく、他のテーブルに入力されるすべての情報...

手伝ってくれてありがとう!

アップデート:

JOIN構文を使用せず、クエリは次のようになります。

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

mysql - バージョン管理およびインデックス作成されたデータストア

エンティティのすべてのバージョンを簡単にインデックス付けされた方法で保存する必要があり、使用するシステムについて誰かが入力したかどうか疑問に思っていました。

バージョン管理を行わない場合、システムは、たとえば1人あたりの行を持つ単なるリレーショナルデータベースになります。人の状態が変化すると、その行はこれを反映するように変更されます。バージョン管理では、常に前のバージョンに戻ることができるように、エントリを更新する必要があります。時制データベースを使用できれば、これは無料で、「ダブリンに住んでいて30歳の昨日の午後2時の時点でのすべての人々の状態はどうなっているのか」を尋ねることができます。残念ながら、一時的に実行できる成熟したオープンソースプロジェクトはないようです。

これを行うための本当に厄介な方法は、状態の変化ごとに新しい行を挿入することです。人は多くのフィールドを持つことができますが、更新ごとに1つしか変更されないため、これは重複につながります。また、タイムスタンプが与えられたすべての人に正しいバージョンを選択するのは非常に時間がかかります。

理論的には、リレーショナルデータベースとバージョン管理システムを使用して時制データベースを模倣することは可能であるはずですが、これはかなり恐ろしいことのように聞こえます。

それで、誰かが以前に似たようなものに出くわしたことがあり、彼らがそれにどのようにアプローチしたのか疑問に思いましたか?

更新 Aaronによって提案されたように、これが現在使用しているクエリです(mysqlで)。20万行を超えるテーブルでは、間違いなく低速です。(id =テーブルキー、person_id = 1人あたりのID、その人に多くのリビジョンがある場合は複製)

p.id =の人pから名前を選択します(person_id = p.person_idおよびtimestamp<=:timestampの人からmax(id)を選択します)

更新 これを行うための最良の方法は時制データベースを使用することのように見えますが、オープンソースのものがないことを考えると、次善の方法は更新ごとに新しい行を格納することです。唯一の問題は、変更されていない列の重複と遅いクエリです。

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

database - リレーショナル データベースと数学?

リレーショナル データベースに数学的アプローチを採用するリソースを提案できる人はいますか? 本質的にリレーショナル代数だと思います。

私は数学のバックグラウンドを持っており、現在はデータベースで多くの作業を行っており、ギャップを埋めたいと考えています.

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

sqlite - SQLite - 同じデータ/列の複数のエントリに対する SELECT

私はSQLiteに少し慣れていないため、データベースの設計について少しジレンマを抱えています。説明します。あなたとあなたの友人がインターネット上でさまざまなニックネームを使用しているとします (1 人あたり複数のニックネームを使用できます)。ここにあるのは、その人物の ID と、この人物が使用するすべてのニックネームのリストです。これは、大きなリストの 1 つのエントリです。ここでの目標は、SQLite を使用してこのデータを格納し、SELECT ステートメントを使用して指定されたニックネームを含むすべてのエントリをフェッチできるようにすることです。

最初は ID (主キー) で、もう 1 つはニックネームをCSV形式で保持する TEXT の 2 つの列を持つテーブルを作成することを考えました。ただし、この例では、CSV に保存されているニックネームを検索して一致させるための select ステートメントの書き方がわかりません。

アイデア?

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

null - データベース標準としての Null 以外の外部キー

背景: 本日、SQL Server Reporting Services の使用中に問題が発生しました。レポート ビューアーの SSRS ドロップダウン パラメーターでは、(null) オプションを指定できないため、そのパラメーターが null であるレポートを表示できないようです。基本的に、テーブル A はテーブル B を null 可能に参照するテーブルです。レポートはテーブル B を使用してドロップダウンに入力するため、オプションとして表示する null がないため、null B を持つすべての A を選択することはできません。

私の本当の質問は、私が回答している管理タイプによる、上記の問題に対する潜在的なお決まりの反応から来ています。何が起こっているのかを説明したとき、彼女はすべての外部キーが非 null でなければならず、すべてのエンティティに「デフォルト」レコードを挿入する必要があるという新しい義務を発行しました。これは、レポート ツールでこの問題を解決するように見える新しい標準です。基本的に、Cat テーブルがある場合、Cat.Owner を null にすることはできませんが、Person テーブルのデフォルト レコードである「デフォルト」の Person を参照する必要があります。

これは SSRS の問題を解決する可能性がありますが、データベースを使用するサービスやアプリケーションの開発/保守に悪影響を与える可能性があります。これは、null (これまで許可されていた) を考慮する必要があるだけでなく、検索して適切に使用する必要があるためです。 「デフォルト」レコード。私は彼女に任務から外そうとすることを考えましたが、そうする前に経験者から情報を集めたいと思います.

これが何を助けたり傷つけたりするかについて誰かが検討できますか?

誰もこれをデータベースの標準として持っていましたか? 問題、開発など、気をつけなければならないことはありますか?