1

この説明を使用してE-Rダイアグラムを作成し、それをリレーショナルテーブルに縮小する必要があります。後でSQLでテーブルを作成する必要がありますが、最初にこれらを正しいものにしたいと考えています。E-Rダイアグラムとリレーショナルテーブル

FAST FOOD CHAINアプリケーションの次の要件を考慮してください。 このファーストフードチェーンには複数のレストランがあります。各レストランには、マネージャーと アシスタントマネージャー(マネージャーとは異なる)、および レジ係のような他の従業員とクリーニング担当者がいます。私たちはすべての 従業員の氏名、住所、電話番号、給料を知っています。各レストランはその在庫を追跡しているので、各店舗にはどれくらい多くの商品が入っているのかが分かります。各項目には、名前と住所を持つプロバイダがあります。 お客様はレストランを訪れ、食べ物(アイテム)を入手します。レギュラーとVIP のお客様には、2つのタイプの顧客があります。ファーストフードチェーンは、各顧客の名前、住所、電話を追跡します。しかし、VIP顧客の では、店舗は顧客の誕生日を追跡します。店舗では、購入日を記録し、合計金額は であり、顧客が購入したすべての商品の一覧を表示することによって、顧客が行った各購入のトラックを保持します( )。各購入は顧客によって行われ、レジ係に関連付けられます。 E-R図はこれですで

私の最初の試み:すべてのヘルプは高く評価され

Restaurant(manager, assistant_manager) 

Employees(id, name, address, phone, salary) 

Items(item_id, provider, address) 

Customer(customer_id, type, name, address, phone, VIP) 

Purchases(customer_id, cashier_id, total_paid, date_bought, items_bought) 

enter image description here

テーブルでの私の試みのように見えます!ありがとうございます

答えて

0

あなたには多くの間違いがあります。

まずは:データモデリングブックを詳しく読んでおくとよいでしょう。
は、以下を参照してください。

How to become a good database designer?は、私はいくつかの重要なミスをリスト:

  1. マネージャおよびアシスタントマネージャーは、属性にすることはできません。彼らは従業員のタイプです。レストランと従業員の間には、マネージャとアシスタントマネージャの間に1対1の関係(ManagerまたはAssistant_Managerの名前で)を持つことができます。
  2. あなたの説明に基づいて、Employee Typeエンティティを持つ方が良いです。
  3. アイテムのプロバイダは、エンティティになることができます。
  4. あなたはItemsにpurchases_idを入れる必要があります。
  5. 購入と従業員の関係は多対1でなければなりません(各従業員は多くの購入と1人の従業員が処理する各購入を処理できます)。

当然のことながら、各従業員は一度に1つの購入のみを処理できます。しかしERを設計するときは、その時代ではなく時間を考慮する必要があります。 (たとえば、各従業員が1日に多数の購入を処理する)

関連する問題