問題タブ [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.
database - 「オープンスキーマ」を備えたデータベース - 良いアイデアか悪いアイデアか?
Reddit の共同創設者は、何百万ものユーザーにスケーリングする際に抱えていた問題についてプレゼンテーションを行いました。概要はこちらから入手できます。
私が驚いたのはポイント3です。
代わりに、Thing Table と Data Table を保持します。ユーザー、リンク、コメント、サブレディット、賞など、Reddit のすべてが Thing です。Thing は、賛成/反対の投票、タイプ、作成日などの共通の属性を保持します。Data テーブルには、Thing id、key、value の 3 つの列があります。属性ごとに行があります。タイトル、URL、作成者、スパム投票などの行があります。新しい機能を追加するとき、データベースについて心配する必要はもうありませんでした。新しいもののために新しいテーブルを追加したり、アップグレードについて心配したりする必要はありませんでした。
これは私にはひどいアイデアのように思えますが、Reddit ではうまくいったようです。しかし、それは一般的に良い考えですか?それとも、たまたまうまくいったのは Reddit の特性ですか?
database-design - 「プライマリ」エンティティを持つ子コレクションの最適なスキーマ設計は何ですか
シナリオは次のとおりです。Addresses テーブルとの 1 対多の関係を持つ Persons テーブルがあり、Address 行の 1 つが「プライマリ」Address です。
正規化されたスキーマでは、
- Persons.PrimaryAddressID を使用して、個人の「プライマリ」アドレスにアクセスします
また
- Addresses.IsPrimary ビット列を使用して、Addresses.PersonID を介して個人の「プライマリ」アドレスを参照します。
また
- 他の
なぜ?
c# - SqlCe を使用した電子メール データベースの作成とインデックス作成
簡単なメール クライアント プログラムを作成しています。MS SqlCe をメールのストレージとして使用しています。メッセージを格納するためのデータベース スキーマは次のとおりです。
StorageData フィールドに、MIME メッセージをバイト配列として格納します。しかし、保存されたメッセージに検索を実装しようとすると、問題が発生します。このスキーマに基づいてメッセージにインデックスを付ける方法がわかりません。
ストレージスペースと検索のしやすさの点でも効果的であるように、良いがシンプルなスキーマを提案するのを手伝ってくれる人はいますか?
よろしく、
database-schema - 使用できる一般的な会計システム データベース スキーマはありますか?
一般的な会計システム データベース スキーマが必要です。これを提供しているサイトはありますか?
database-design - データベース設計 - テーブルの関係に関する質問
簡単なクイズ アプリケーションのスキーマを設計しています。「質問」と「回答の選択肢」の 2 つのテーブルがあります。質問テーブルには、「質問 ID」、「質問テキスト」、および「回答 ID」列があります。「回答の選択肢」テーブルには、「質問 ID」、「回答 ID」、および「回答テキスト」列があります。この単純なスキーマを使用すると、質問に複数の回答選択肢を含めることができるため、回答選択肢テーブルが必要になることは明らかです。ただし、質問の正解は 1 つしかないため、質問表に「回答 ID」が必要です。ただし、質問表のこの「回答 ID」列は、正しくない 1 つの回答に対して複数の質問があるかのように錯覚させます。この錯覚を解消するもう 1 つの方法は、2 つのテーブル間で 1 対 1 の関係を持つ質問 ID と回答 ID の 2 つの列だけを持つ、正解専用の別のテーブルを用意することです。しかし、これは冗長だと思います。これをどのように設計するのが最善かについての推奨事項はありますか?それにより、質問には複数の回答の選択肢があり、正解は1つしかないというルールが適用されますか? どうもありがとう。
database-design - マテリアライズドビューを作成するのと、新しいテーブルを作成するのとでは、どちらが優れていますか?
5〜7個のmysqlテーブルから頻繁に更新される同じデータセットを選択する必要がある、要求の厳しいmysqlクエリがいくつかあります。「選択」操作は、CUD よりも少し多くなります。
テーブルまたはマテリアライズド ビューを作成して、要求の厳しいすべての列を他のテーブルから収集し、さまざまなテーブルへの全体的なクエリ時間を短縮してパフォーマンスを向上させることを考えています。
そのテーブルを作成すると、他のテーブルが更新されるたびに追加の挿入/更新/削除操作が必要になる場合があります。
マテリアライズドビューを作成すると、パフォーマンスが大幅に向上するか心配です。他のテーブルのデータが頻繁に変更されるためです。ほとんどの場合、ビューを選択する前に毎回最初にビューを作成する必要があります。
何か案は?たとえば、キャッシュする方法は?私ができる他の追加の対策は?
sql-server - LINQ-to-SQL DBML スキーマを SQL Server データベースと同期する
SQL Server 2008 データベースを作成した後、Visual Studio で Linq-to-SQL スキーマを作成しました。次に、.dbml
ビジュアル エディター (Visual Studio 2010) で、スキーマに PK から FK への関連付けと PK から PK への関連付けを追加しました。
Visual Studio で作成した関連付けをデータベースにコピーするにはどうすればよいですか? つまり、 DBと同期するにはどうすればよいでしょうか。
language-agnostic - DBテーブルで削除されたレコードをマークする
DBテーブルレコードを完全に削除するのではなく、削除済みとしてマークしたい場合がありますか?
どうやってそれをしますか?
これまでブール値の「削除済み」フィールドを使用してきましたが、それが適切なアプローチかどうかはわかりません。
mysql - 単一のテーブルを複製する
単一のテーブルを複製することは可能ですか?
sql-server - マルチテナントアプリですべてのテナントのすべてのスキーマをどのように更新しますか?
マルチテナントアプリを開発しています。「共有データベース/個別スキーマ」アプローチを選択しました。
私の考えは、デフォルトのスキーマ(dbo
)を使用し、このスキーマをデプロイするときに、テナントのスキーマ(、、)を更新するtenantA
ことtenantB
ですtenantC
。つまり、同期されたスキーマを作成します。
テナントのスキーマをデフォルトのスキーマと同期するにはどうすればよいですか?
SQLServer2008を使用しています。