タグ付けされた質問 「database」

このタグは、一般的なデータベースの質問用です。SQLに固有の質問の場合は、代わりにそのタグを使用してください。

5
データベース接続-パラメーターとして渡す必要がありますか?
データベース接続が共通メソッドを使用して一度取得され、使用される関連クラス全体に渡されるシステムがあります。データベース接続をパラメーターとして別のクラスに渡すと問題が発生するのではないかという疑念があるので、ここで実際に実行可能かどうかを確認していますが、それを行うためのより良いパターンはありますか? 永続化を行うためのORMツールがいくつかあることは知っていますが、それについてはまだ説明できません。 フィードバックを歓迎します、ありがとう。

4
列挙型とテーブルの同期を保つ
データベースにデータを投稿するプログラムを作成していますが、よく知っているパターンに出くわしました。最も可能性の高い(非常に可能性の高い)固定値の列挙型の短いテーブル。次のテーブルが呼び出されたとしますStatus: 状態 ID説明 -------------- 0未処理 1保留中 2処理済み 3エラー 私のプログラムでは、別のテーブルのステータスIDを決定するか、新しいステータスIDでレコードを更新する必要があります。 ステータスIDを列挙型でハードコードでき、誰もデータベースを変更しないことを願っています。または、説明に基づいて値をプリフェッチすることもできます(したがって、代わりにハードコーディングします)。 これら2つの列挙型とテーブルの同期を維持するための正しいアプローチは何でしょうか?
11 database  enum 

3
データベースをオンラインにするにはどうしますか?[閉まっている]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、 Software Engineering Stack Exchangeのトピックになるようにします。 6年前に閉鎖されました。 ウェブ開発に関して非常に初心者の質問があります。 私は、在庫と販売を追跡するための簡単なシステムを作成するために、JSP、Hibernate、およびMAMPでいくつかの経験をしました。しかし、これはすべて1台のコンピューターでローカルに行われました。 今回は、オンラインでアクセスできるシステムを作成したいと思います。母がどこへ行ってもビジネスを追跡できるようにするためです。そのため、在庫と販売の追跡など、同様の側面があります。すべてのファイルをホストするサーバーが必要であることは理解しています。しかし、データベースにオンラインでアクセスする方法がわかりません。または、どのような種類のアプリケーションまたは製品を使用する必要があります。 現在、データベースのホストはlocalhostです。CRUD操作を実行できるように、どのようにオンラインに設定しますか?これを行うためのガイドはありますか?

11
テーブルの継続的な作成と削除は、アーキテクチャ上の欠陥の兆候ですか?
最近、私はプログラム開発中に、彼らがアジャイル開発プロセスを使用する場合はこれが正常であると言って、新しい機能と正当化された事に取り組んでいる間、定期的にテーブルとカラムを定期的に作成および削除することを述べた開発者と議論しました。 私のバックグラウンドのほとんどはウォーターフォール開発環境にあるので、これがアジャイル開発で実際に適切であると考えられているのか、またはこれが根本的な問題の兆候であるのか、プログラムアーキテクチャまたはアジャイルプロセスのフォローに関するものなのか疑問に思います。

10
RDBMSはどのように流行と見なすことができますか?
2003年にコンピューティングAレベルを完了し、2007年にコンピューティングの学位を取得し、SQLの使用が多い企業での取引を学び、ストレージにリレーショナルデータベースを使用するというアイデアを思いつきました。 そのため、開発は比較的初心者でしたが、次のようなコメント(/software//q/89994/12436)を読むのに驚きました。 [一部の開発者]は[SQL]を軽deし、それとRDBMSは流行だと思います 明らかに、有能な開発者は適切なジョブに適切なツールを使用し、ストレージ用のフラットファイルまたは別のソリューションが適切な場合にリレーショナルデータベースを作成しませんが、RDBMは非常に多くの状況で役立ちます。流行と考えられますか?

3
ベストプラクティス:データベースアプリのプログラミングパターン
私はこれまで多くのデータベース(MySQL)Webアプリを書いてきましたが、私の構造はちょっと不器用だといつも思っています。ここでいくつかのアドバイスを期待して、使用しているプログラミング/設計パターンを改善したいと思います。特に、データベース(スキーマ)の実装をカプセル化するOOPアプローチを補完する構造を見つけることができません。私 私の質問は例で最もよく説明できると思います。Invoiceオブジェクト/クラスがあると言う2つのアプローチがあります。 最初は静的メンバー関数を使用することです class Invoice { int id; string ref; int customer_id; date created; date due; static id create(); static bool update(id, field1, field2, ...); static bool delete(id); static bool get(id); }; 2番目のアプローチは、すべてのものをデータベースオブジェクトに入れることです。 class Database extends ProprietaryDBConnecter, Singleton { id createInvoice(); bool updateInvoice(id, field1, field2, ...); bool deleteInvoice(id); bool getInvoice(id); …
11 database 

2
価格設定製品のデータベーススキーマ(パッケージ、プロモーション、数量ベース、期間限定オファー…)
製品ミックスによって価格が異なる会社の新しいPOSに取り組んでいます。 すべての製品に基本価格があります。 私の問題を説明するために、私は次の情報を使用します: Product Category Price A 1 45 B 1 70 Q 2 20 R 2 27 S 2 15 X 3 17 Y 3 22 Z 3 16 会社にはパッケージがあります(パッケージ「コンボ」など)。製品AまたはBの場合、QまたはRのいずれかを選択し、X、Y、またはZのいずれかを選択すると、20ドルの割引が適用されます。 ケースA:注文時にベース商品に追加する場合があります。たとえば、商品Aではなく、商品Qと商品Pを追加して、割引価格のパッケージを作成します。次に、1つのRと1つのZを持つ1つの製品Bが必要であると追加します。 ケースB: 1 Aと2 B、2 Q、1 S、2 Xと1 Zを追加する場合があります。「コンボ」パッケージで規定されているルールに従って、Sはコンボアイテムではないため、2つのコンボのみが適用されます。 その他のプロモーションは数量に依存するため、Bを2つ購入すると20%オフまたは時間に依存し、午後5時以降または午前10時前の場合は10%オフ前にのみ有効です。別のプロモーションは、最後の購入がいつ行われたか、またはY期間に$ Xを超えて購入したかどうかによって異なります。 私の問題: 1)さまざまな要件を持つさまざまなタイプのプロモーションを追加するのに非常に柔軟な方法で、さまざまなパッケージまたはプロモーションを作成できるように、テーブルをどのように構成しますか? 2)ケースB(またはケースAとケースBの組み合わせ)のように注文した場合、クエリを構造化して、注文に含まれる製品の組み合わせを確認し、それに応じて価格/説明を更新する方法?最終的に、このクエリの最良の結果は、どのパッケージとプロモーションが要件を満たし、その順に顧客に最もメリットがあるかを返します(つまり、注文したものがプロモーション1と3の要件を満たしますが、プロモーション3の方が安価です)。複数のプロモーションで機能する必要があります)。 助けてくれてありがとう! アップデート#1 目前の問題をよりよく説明し、これまでに行った作業を更新して問題を解決するために、問題に影響を与えるエンティティと属性に限定された製品モデルのERDを含めています(つまり、ここでは在庫が機能していないため、在庫はありません)エンティティが存在します)。 この質問に影響を与えるエンティティと属性からのサンプルデータも含めています(データの読み取りを簡単にするために、外部キーの代わりに名前/説明を入れています)。 これは、コンボの例を示すフローチャートへのリンクであり、テーブル構造を理解するための高速で視覚的な方法です。 …

3
データベーステーブルごとのモデル?
私はcodeigniterを使用しており、Modelメソッドを繰り返した同じような状況に陥っています。コントローラごとにモデルを作成しています。しかし、データベーステーブルごとにモデルを作成することをお勧めしますか?そうすれば、メソッドが2回記述されることはありません。 コントローラごとのモデルまたは共有されているいくつかの小さなモデルの代わり。 モデルメソッドget_user($ user_id)がある場合の例は、users_models.phpに記述できます... これについて私が目にする欠点の1つは、単にcontrollername_models.phpではなく、いくつかのモデルを呼び出さなければならない可能性があることです。 コントローラからいくつかのメソッドが使用されない可能性がある複数のモデルをロードすると、パフォーマンスと速度に影響を与える可能性がありますか?これに取り組むための最良の方法は何でしょうか? 注:同様の質問がありますが、データベーステーブルごとのモデルの根拠については取り上げていません。

4
クラス重複パターン?
私は現在、現在のプロジェクトでソロ開発者として働いています。私は別の開発者からプロジェクトを引き継ぎました。これは、C#のモデルビューコントローラースタイルのWebアプリケーションです。オブジェクトリレーショナルマッピングにEntity Frameworkを使用します。また、ドメインモデルの型には、2つの異なるクラスセットがあります。1つのセットはORMとの対話に使用され、もう1つのセットはMVCシステムのモデルとして使用されます。たとえば、次の2つのクラスがあるとします。 public class Order{ int ID{get;set;} String Customer{get;set;} DateTime DeliveryDate{get;set;} String Description{get;set;} } そして public class OrderModel{ String Customer{get;set;} DateTime DeliveryDate{get;set;} String Description{get;set;} public OrderModel( Order from){ this.Customer= from.Customer; // copy all the properties over individually } public Order ToOrder(){ Order result =new Order(); result.Customer = this.Customer; // copy …

5
データベースに適切な全文索引がないのはなぜですか
MySQL、SQL Server、Oracleなどの主要なRDBMSシステムのいずれも、フルテキストインデックス作成を適切にサポートしていないのはなぜですか。 ほとんどのデータベースはフルテキストインデックスをある程度サポートしていますが、通常は遅く、機能セットが小さいことに気づきます。本当に優れたフルテキストインデックスが必要なときは常に、データベースの外に出て、Lucene / SolrやSphinxなどを使用する必要があるようです。 これらの全文検索エンジンのテクノロジーがデータベースエンジンに完全に統合されていないのはなぜですか?データを最新の状態に保つことや、結果を他のテーブルと結合できないことなど、データをLucenceなどの別のシステムに保持することには多くの問題があります。これら2つのテクノロジーを統合できない具体的な技術上の理由はありますか?

5
PostgreSQLなどのリレーショナルデータベースのトリガーは本当に必要ですか?
保存されたデータを検証してデータベースの整合性を保つためにトリガーを使用できることを知っています。ただし、データをデータベースに格納する前に、アプリケーション側でデータの検証を実行してはどうでしょうか。 たとえば、クライアントを保存し、DDLレベルでは簡単に実行できない検証を実行したいとします。 https://severalnines.com/blog/postgresql-triggers-and-stored-function-basics 別の例は監査です。 更新 トリガーとデータベーストランザクションがどのように連携するか。たとえば、挿入されているデータの検証を実行したい場合などです。トランザクション内で行われます。以前に何が起こるか:トランザクションがコミットされるか、トリガーが実行されますか?

4
マイクロサービスアーキテクチャがマイクロサービスごとに個別のデータベースを必要とする場合、コストがかかりすぎて管理できません。なぜそれが必要なのですか?
私はマイクロサービスについて読みましたが、分離を実現するためだけにサービスごとに個別のDBを作成するのは私には非論理的です。Webサービスと単一のデータベースのみを使用して同じことを実現できます。なぜそれが必要なのですか?データベースを分離することは議論の余地があります。または私は明らかに間違っていますか?これについて教えてくれませんか?

4
一意のインデックスを追加できない場合に重複を回避するために可能な方法は何ですか
同時実行の問題で立ち往生しています。 ユーザーが2から3のトランザクションを送信して、DBで重複してはならないデータを永続化するという典型的な問題です。重複するレコードがある場合、エラーを返す必要があります。 この問題は、ハッシュを格納する列にインデックス(一意)を追加できる場合は簡単です。 しかし、この場合、巨大なテーブル(おそらく数百万のレコード)があり、テーブルを変更することはできません。 実際、重複してはならないデータのハッシュを格納する列がありますが、一意のインデックスは設定されていません。 フラッシュの直前にJavaコードが存在するかどうかを確認しようとしていますが、それでも重複が発生します。 これに対する私の可能な解決策は次のとおりです。 挿入しようとしているハッシュがテーブルに既に存在するかどうかをチェックするトリガーを作成します。 このテーブルの一意のインデックスを格納する別のテーブルを作成し、メインテーブルに外部キーを追加します。 胎児の位置に座り泣く

3
Firebaseを使用している場合、ビジネスロジックをどこに配置しますか?
マルチユーザードキュメントシステムを非常に簡略化した単一ページのWebアプリケーションの開発を開始します。フロントエンドはおそらくAngular2を使用します。 プロジェクトには短い期限があるため、「ショートカット」、つまりすべてを最初から実装するのではなく、既成のさまざまなサービスを使用することを探していました。 アプリケーションデータを格納するために、なんらかのバックエンドが必要になります。私は周りを見回して、Firebaseを見つけました。Firebaseは、フロントエンドと通信するための個別のバックエンドとAPIを作成する作業の一部を取り除いているようです。 しかし、これはビジネスロジックをフロントエンドのAngular2 Webアプリに配置する必要があることを意味しますよね? では、将来、モバイルアプリのフロントエンドを作成したい場合、ビジネスロジックコードを複製する必要がありますか? ビジネスロジックを含み、データストレージにFirebaseを使用するバックエンドを作成するのが代替策だと思いますが、少し奇妙に思えます(バックエンドでORMまたは何かを直接使用して、もっと多くの仕事?) たとえばFirebaseを利用したい場合、人々は通常どのようにこれらの種類のアプリを構築しますか?

1
2v2ゲームのデータベース構造
私は定期的に12人の友達と2v2ゲームをプレイしています。ランキングシステムを作成することを目的として、データベースにプレーヤー、チーム、スコア、ゲームを追跡させたいと思っています。 私たちは定期的にチームを変更するので、私はテーブルを作ってみたplayers、teamsそしてgamesゲームは2つのチーム(team1とteam2)を持っているし、チームは2人の選手(player1とplayer2)で構成されています。 これにより、かなりの数の問題が発生します。たとえば、2人のプレーヤー(AとBと呼ぶことにします)を一緒にプレイする場合、プレーヤー1がAでプレーヤー2がBであるか、プレーヤー1がBでプレーヤー2であるチームがすでに存在するかどうかを確認する必要があります。 Aです 列gamesとwinsはplayersテーブルとteamsテーブルの両方にありますが、これは、プレーヤーが勝ったゲームの数だけでなく、プレーヤーがさまざまなチームでどの程度互換性があるか(チームとチームを組んだときにプレーヤーが勝つ頻度)も確認したいためです別の特定のプレーヤー)。 ランキングスコアボード(おそらくEloレーティングシステムを使用します) レーティング、勝利、ゲーム、最近のゲーム統計、および彼が最も互換性のあるプレーヤーを含むすべてのプレーヤーの統計ページ。 これの多くはデータベースの正規化のいくつかの原則に違反していると私は強く疑っています。データベース設計を実装する方法としていくつかの提案が気に入っています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.