Relazioni in un ERD Chen

0

Sto lavorando a un ERD Chen per modellare il nostro merchandising delle organizzazioni. La nostra entità centrale è uno stile. Abbiamo entità supplementari di Colore e Stagione.

Sto definendo il nostro assortimento come la relazione tra queste tre entità, e questa relazione avrà attributi ed è definita dalle tre entità che partecipano alla relazione obbligatoria. Le regole sono;

  • Molti Stili possono essere offerti in una Stagione e uno Stile può essere offerto in molte Stagioni.
  • All'interno di una stagione, uno stile può essere offerto in molti colori.

Poi ho altre 2 entità, una delle quali credo sia un'entità debole, Clima, e l'altra potrebbe essere debole, ma non sono sicuro, trattandosi di Transaction Channel.

Sto pensando a queste come relazioni fuori da una relazione? Significa che, per una data combinazione Stile / Colore offerta in una Stagione, può essere disponibile attraverso 1 o più Canali di Transazione. Inoltre, all'interno di una stagione, una determinata combinazione stile / colore può essere intesa per 1 o più climi.

È valido avere relazioni fuori dalle relazioni? Oppure questo requisito impone che dovrei pensare a questo rapporto Stile / Colore / Stagione come a un'entità stessa e definire le relazioni con Clima e Transazione canale fuori da questa entità?

    
posta Nibroc A Rehpotsirhc 29.01.2014 - 18:54
fonte

1 risposta

1

Una relazione è un modo per collegare le righe nelle tabelle. I punti iniziale e finale sono tabelle (o viste). Non ha senso parlare di relazioni fuori da una relazione in sé, tuttavia, puoi avere una tabella di link (ad esempio usata per esprimere una relazione molti-a-molti come hai con stile e stagione) che puoi creare relazioni a / da.

Nel tuo caso il modello di dati potrebbe essere simile a questo:

  • stile: uno stile che può essere offerto in vari colori nelle varie stagioni.
  • colore: un colore a cui è offerto lo stile.
  • stagione: un periodo di tempo in cui viene offerto lo stile / colore.
  • canale: una festa che rende disponibile lo stile / colore per una determinata stagione.
  • clima: un clima per il quale si intende lo stile / colore / stagione.

Dato che uno stile può essere offerto in molte stagioni e una stagione può avere molti stili, hai una relazione molti-a-molti che devi separare con una tabella di link. Ora, tu dici anche che in una stagione uno stile è offerto in molti colori. Questo ci porta alla seguente combinazione: colore in stile di stagione. In parole povere, una stagione ha molti stili che possono avere molti colori. Suppongo che i colori possano variare per ogni stagione. Credo che questa terzina rappresenti un prodotto concreto (ad esempio "un maglione rosso per l'inverno"). Questo ci porta a:

            color
              ^
              |
  style <- product -> season

In altre parole, un prodotto è ciò che viene reso disponibile per i canali che hai menzionato. Inoltre, un prodotto è adatto per un particolare clima.

In termini di tabelle:

  • stile: style_id (pk), ...
  • color: color_id (pk), ...
  • season: season_id (pk), ...
  • clima: climate_id (pk), ...
  • prodotto: (style_id (fk), color_id (fk), season_id {fk)) (pk), ... (vedi nota sotto).
  • canale: channel_id (pk), ...
  • disponibilità: (product_id (fk), product_id (fk)) (pk), ...

La notazione "(col_1 (fk), col_2, ..., col_n) (pk)" è il mio tentativo di esprimere una chiave primaria composita. Una chiave primaria composta è composta da più di una colonna e le colonne possono essere chiavi esterne o normali valori aziendali. Ciò consente di esprimere un prodotto come combinazione di stile, colore e stagione. Inoltre, puoi esprimere quando un prodotto è disponibile per un particolare canale (la parte "quando" fa parte della stagione che fa parte del prodotto).

Ha senso?

    
risposta data 31.01.2014 - 14:42
fonte