ERD: "molti" contro "zero o molti" / "uno o più" notazione di ranuncolo?

3

Sfondo
Ho visto questa figura che descrive le diverse notazioni di ranuncoli usate nell'ERD:
Nonsonoingradoditrovareladifferenzatrala"molti" notazione e lo "zero o molti", tuttavia sono riuscito a trovare un esempio ( vedere in basso a sinistra la "molti" notazione) : < br> ( origine )

Domanda
Quando utilizza la notazione "molti" e qual è la differenza tra questa notazione e lo "zero o molti" "e" uno o più "notazione.

    
posta KingBoomie 06.04.2017 - 22:43
fonte

3 risposte

4

Penso che le persone li usino solo quando non si preoccupano abbastanza di essere specifici.

Personalmente evito completamente i primi due esempi nella tua lista.

Per il tuo esempio, suppongo - dal contesto - che le spedizioni abbiano un solo ed uno shipper, e che gli articoli esistano in una sola e sola spedizione, ei fornitori possono avere zero-to- molte spedizioni.

    
risposta data 06.04.2017 - 23:06
fonte
4

Le prime due relazioni, One e Many , hanno un limite inferiore non specificato . Quindi quando li usi lasci un'ambiguità se sono obbligatori o facoltativi.

Questa ambiguità è utile nella modellazione, al fine di far fronte a una o più delle seguenti circostanze:

  • il limite inferiore potrebbe essere temporaneamente indefinito, ad esempio durante la fase di progettazione, quando tutte le regole aziendali non sono ancora chiare.
  • il limite inferiore non è rilevante, ad esempio perché è una decisione che può essere presa in seguito, quando si configura il software e in base alle regole aziendali (ad esempio, definizione ad hoc di not null vincolo nel database o parametro run-time che definisce se il codice dell'applicazione deve accettare o meno la situazione.
  • per evitare l'ansia inutile quando c'è una discrepanza tra il modello teorico e la pratica dell'applicazione. In genere, questo è il caso della tua relazione da shipment a item : nella vita reale, ti aspetteresti che una spedizione contenga almeno 1 elemento (di solito le persone non amano inviare scatole vuote!). Quindi, nel modello, ti aspetteresti one or many . Ma dall'altra parte nella tua domanda, puoi benissimo decidere di creare una spedizione in due fasi: crei una spedizione vuota nell'ufficio vendite e successivamente aggiungi gli articoli (con un lettore di codici a barre in officina). Quindi l'app e il db devono gestire spedizioni che possono essere temporaneamente vuote.

L'ultimo caso si verifica molto più di quanto ci si aspetti di solito. Mantenere il limite inferiore non specificato, ha quindi il vantaggio di costringere dba e sviluppatori a mantenere il vincolo minore (ovvero 0 o più nella pratica dell'applicazione), senza contraddire l'assunto teorico (cioè 1 a molti, perché alla fine, nessuna spedizione lascia la fabbrica è vuota).

    
risposta data 07.04.2017 - 02:07
fonte
1

Di solito uso il - < "molte" notazioni quando si scrive velocemente su una lavagna. È utile lì perché stiamo solo cercando di delineare un'idea generale. La vaghezza a volte è utile in questa fase.

La differenza tra "molti" e "zero di molti" e "uno o molti" ...

  • "molti" - < è effettivamente uguale a "0 o molti" perché non possiamo assumere un limite inferiore che non è dichiarato. È ovvio o vago a seconda di come il tuo team lo comprende.

  • "zero o molti" -0 < è specifico significa che il numero di entità correlate è > = 0.

  • "uno o più" - | < significa numero di entità correlate > 0.

btw: la notazione "uno" - | - è esplicita. Significa esattamente uno, ed è relativamente poco frequente da usare. Se vuoi scrivere una versione vaga di "uno" scrivi una riga - senza alcun simbolo alla fine.

Questo è un po 'come il baseball del parco giochi. È così che si gioca nel mio quartiere. C'è un comitato ISO per questo? Ci interessa davvero?

    
risposta data 07.04.2017 - 03:49
fonte