Che cosa è una buona regola per nominare le tabelle dei collegamenti?

4

Allo stesso modo in cui una tabella publication potrebbe riguardare una tabella person tramite subscriptions , o una tabella company potrebbe riguardare una tabella person tramite employee , mi chiedo se esiste un modo descrittivo per correlare una tabella company a una tabella company_type .

Ecco alcuni esempi approssimativi (e semplificati) delle tabelle pertinenti.
azienda:
 - | id | nome |
company_type:
 - | type | description |
{name needed}:
 - | id | company_id | tipo |

Inoltre, mi rendo conto che non tutte le relazioni possono essere definite succintamente come subscriptions o employee , quindi se questo è il caso, quale sarebbe una buona regola empirica per evitare una collisione vicina al nome con qualcosa come company_types ?

Dettagli aggiuntivi:
I tipi di società, nel nostro caso attuale, sono un po ' contorti. Questo settore ha più canali di approvvigionamento e più canali cliente, quindi mentre "fornitore" è un tipo di azienda valido, un fornitore può anche essere "indipendente", "autorizzato" o "in franchising" ... o qualsiasi combinazione dei tre.
I tipi di clienti sono molto sfaccettati e, per aggravare ulteriormente il problema, una singola azienda può essere contemporaneamente di alcuni tipi di fornitore e cliente.

    
posta mOrloff 06.06.2013 - 17:35
fonte

3 risposte

2

Sembra che tu abbia una relazione uno a molti tra azienda e tipo_azienda. Una società può essere di più tipi? Forse potresti fornire un insieme di tipi per una determinata azienda un nome, "profilo", "classificazione".

company_profile o company_classification

In alternativa puoi descrivere la relazione, ad esempio:

company_link_company_type

    
risposta data 06.06.2013 - 17:58
fonte
1

Domande di questo tipo possono verificarsi quando non hai una convenzione di denominazione chiara per le tue tabelle di link. Ma per uno schema di database di una certa dimensione, aiuta davvero ad avere tali convenzioni, specialmente quando si ha più di una persona che lavora su quello schema. Inoltre, dovresti avere altre convenzioni di denominazione più generali, come quando usare singolare e quando è plurale, come nominare le tue chiavi primarie e le tue chiavi esterne, ecc.

Per le tabelle di link, questo può comportare nomi di nomi "tecnici" come il suggerimento di @Joppe, o in un nome come company_company_type o company_to_company_type . Ma quando comunichi quella convenzione all'interno della tua organizzazione, questo non dovrebbe diventare un grosso problema. Assicurati solo di attenersi a quella convenzione una volta presa la decisione.

    
risposta data 06.06.2013 - 18:18
fonte
0

Etichettare le cose è facile. Denominare le cose è difficile. Tante volte, facciamo affidamento sulla terminologia adiacente o su ipotesi inespresse per fornire una distinzione tecnica senza fornire una distinzione chiara e categorica. Una citazione da un contesto non correlato esemplifica questo abbastanza bene:

The following note has made a deal of fun in London: ‘Dear Sir: How comes it that I have had no proofs of Love from you since last Saturday? I have waited with the utmost impatience.’ Signed, Charlotte Burry.

But the fun vanishes when the reader learns that Lady Charlotte Burry had a novel entitled Love in press, and that the note was to her printer.

- Kazlitt Arvine, The Cyclopaedia of Anecdotes of Literature and the Fine Arts, 1853

La fonte del post proviene da Futility Closet

Tautologia

Tra varie forme e applicazioni, la tautologia si riferisce all'uso ridondante: sangue rosso, tipo di tipo, tipo di classe. Non c'è alcun chiarimento usando quel particolare descrittore.

Tassonomia

La tassonomia è uno schema che include un insieme di regole strutturate per descrivere le cose. Questo schema potrebbe essere orientato verso le relazioni (genitore-figlio, specializzazione-generalizzazione, composizione dell'eredità), ma può essere organizzato attorno ad altre strategie di discernimento. Quanto prima nella serie di regole, tanto meno specifica la regola, con le regole successive che forniscono distinzione in quella che altrimenti sarebbe una sottile differenza. Descrive un processo per la classificazione. Un modello potrebbe essere l'incarnazione di una tassonomia.

Categorizzazione

Questo è il processo di etichettatura dell'intero qualcosa per poterlo conteggiare o misurare. Il soggetto soddisfa un grado di somiglianza, e manca di ogni caratteristica squalificante che possiamo chiamare lo stesso.

Caratterizzazione

Queste sono le singole caratteristiche o caratteristiche di una cosa. Questo può includere qualità di personalità o comportamento. Oppure possono essere proprietà fisiche.

Per il problema in questione, per citare il codice pulito di zio Bob:

The name of a variable, function, or class, should answer all the big questions. It should tell you why it exists, what it does, and how it is used. If a name requires a comment, then the name does not reveal its intent.

Martin, Robert C. (2008-08-01). Pulisci codice: un manuale di abilità software agile (pagina 18). Pearson Education (USA). Edizione Kindle.

Quello che abbiamo di fronte è una mappa mentale (pg 25 di Clean Code). La soluzione specifica qualcosa che è probabilmente un po 'diverso da ciò che rappresenta effettivamente nel dominio vivente.

Per ovviare a questo, dobbiamo caratterizzare ulteriormente le cose prima di applicare loro una categoria. Quali sono i comportamenti, le relazioni o le proprietà delle cose? Non descriverlo in termini di database o design in cui si trova, dato che sta già contribuendo alla difficoltà di chiarezza, ma come si descriverebbero in termini di interazioni o attività specifiche che svolgono?

Questo è ciò che è chiaro:

  • Azienda : un'azienda coinvolta nel settore a cui partecipa volte come fornitore e come cliente
  • Fornitore : fornisce qualcosa a un cliente; un venditore è anche ogni fornitore può o meno avere un'affiliazione con un altro fornitore
  • Modello fornitore : in che modo un fornitore è organizzato, affiliato e opera; esempi includono indipendenti, autorizzati, in franchising
  • Affiliazione fornitore : relazione esplicita con il fornitore che descrive due fornitori che sono organizzati, affiliati o operano in cooperazione tra loro; ogni affiliazione avrà un modello fornitore che descriva la natura della relazione
  • Cliente : acquirente di un bene o servizio o un privilegio di un fornitore
  • Modello cliente : ????
  • Affiliazione cliente : ???
  • Acquista : un record di vendita tra un fornitore e un cliente
  • Buono vendibile : la risorsa o l'articolo distribuito e venduto da un fornitore e acquistato da un cliente
  • Servizio vendibile : un'attività eseguita da un fornitore per un cliente
  • Privilegi vendibili : concedere un'opportunità legale a un cliente di utilizzare qualcosa o eseguire un'attività che è normalmente limitata dal diritto legale del fornitore
risposta data 06.06.2013 - 20:25
fonte

Leggi altre domande sui tag