2017-03-13 5 views
-1

私は、ビジネスがアカウントを作ることができるプロジェクトに取り組んでいます。そして、これらのビジネスは多くの代表を持つことができます。代理人はシステム内の他のビジネスにオファーを送るでしょう。オファーは一度に複数の企業に送信することができ、各ビジネスは受け取ったオファーを保留にすることを受け入れる場合にはドロップダウンリストから選択することができます。私はPHPを使って作業しています。これまでのところすべてを作成していますが、動作していますが。ビジネスCで働く代表者が企業AとBにオファーを送信すると、AとBは保留中の\ deny \ putを受け入れる場合、オファーを表示してそのオファーのステータスを変更することができます。これを可能にし、効率的にするためにデータベースをどのように構成するべきですか? 私は現在 "ビジネス"のテーブルを持っています "ビジネスの詳細"のテーブル "従業員"のテーブル "オファー"のテーブル。従業員がいずれかのビジネスにオファーを送信すると、これらのビジネス\ esのIDは「オファーの」テーブルに文字列として格納され、そのオファーのID内のIDを持つビジネスにオファーの詳細を取得します"テーブル。しかしこの方法では、複数の企業がオファーを見ることができますが、オファーに関する自分のスタンドアローンのステータスを変更したいときは、私が助けを求めている問題が発生します。ステータス更新を伴う複数のクライアントオファーのデータベース設計

'Create table' . $business_name . '_offers' ;のような追加クエリを作成する必要があります。ビジネスが作成されるたびにそのオファーのテーブルが作成されますが、新しく作成されたテーブルのフィールドはどのように定義できますか?

また、オファーのステータス変更に関する通知を後で送信する必要があります。私はこれを一度もやっていないし、クエリ\構造の助けをいただければ幸いです。長い投稿を申し訳ありません。ありがとうございました!

答えて

1

あなたはビジネスとオファーの中間のテーブルが必要です。

BusinessOffersTable 
    OfferID 
    BusinessID 
    Status 

作成されたそれぞれの新しい提供のために、あなたはそれがに送信されますすべてのビジネスのためのレコードを追加しますので、それは、多くの多のテーブルです:それはようなものになるだろう。次に、各事業は、個々のオファー自身のステータスを変更することができます。

OfferID BusinessID Status 
1   1    a 
1   2    b 
1   3    a 
2   1    a 
2   2    b 
2   3    a 
+0

いいですね。どうもありがとう! – Mar1AK

+0

このテーブルのデータが非常に大きくなった場合、この特定のテーブルにパフォーマンスの問題があると思いますか? 500kフィールド以上? – Mar1AK

+0

これは、この種のことを行う標準的な方法です。必要なインデックスがあることを確認してください。私はそのような種類のテーブルには問題がなかった。 – PhillipXT

関連する問題