2017-02-12 2 views
0

Ich werde ein Schema für die folgende XML-Datei erstellen:Datenbank-Schema-Design: optimalere Schema

<Item ItemID="1045677572"> 
<Bids> 
    <Bid> 
     <Bidder Rating="1097" UserID="catann1"> 
      <Location>Longmont, Colorado</Location> 
      <Country>USA</Country> 
     </Bidder> 
     <Time>Dec-10-01 06:43:24</Time><Amount>$0.99</Amount> 
    </Bid> 
... 
</Bids> 
<Seller Rating="87" UserID="efritz68"/> 
</Item> 

XML: Ort und Land Informationen für Bieter optional. Aber Verkäufer benötigt diese Information nicht. Ein Bieter kann gleichzeitig Verkäufer sein. Ein Benutzer kann auf mehrere Artikel bieten. In diesem Fall sind seine Informationen zu Rating, Standort und Land in allen Geboten identisch. Ein Benutzer kann zwei separate Bewertungen als Bieter und Verkäufer haben, falls der Verkäufer auch auf andere Artikel bietet.

Ich bin mir nicht sicher, welches Schema optimal zum Speichern von Benutzern ist. Hier ist mein Schema:

1)

  • Benutzer (Benutzer-ID, Ort, Land)
  • Bieter (UserID, Rating)
  • Verkäufer (UserID, Rating)

2)

  • Bieter (UserID, Rating, Locat Ion, Land)
  • Verkäufer (UserID, Rating)
  • Benutzer (Benutzer-ID)
+0

Kann ein Benutzer wirklich eine andere Bewertung für Bieten und Verkaufen haben? So funktioniert die reale Welt nicht, wo die Benutzer eine Bewertung haben, zB diese Seite gibt es keine Frage Reputation und eine separate Antwort Reputation – Bohemian

+0

Ja, die Bewertung ist anders. Ich habe vergessen diese Info hinzuzufügen. Danke –

+0

Gibt es für einen bestimmten Benutzer eine andere "Bewertung" für jedes Gebot, das er/sie macht? – Bohemian

Antwort

1

Ihr Schema ist (ob es Ihnen gefällt oder nicht):

Item (ItemID, SellerUserID, ...) 
User (UserID, BidRating, SellRating, ...) 
Bid (UserID, ItemID, Amount, Timestamp, ...) 

Ihre XML ist eine denormalisierte Version dieses Schemas.

+0

Ich denke, es ist ein schöner Weg. Vielen Dank! –

Verwandte Themen