Domanda

Ho notato che molte aziende usano un prefisso per le loro tabelle del database. Per esempio. le tabelle si chiamerebbero MS_Order, MS_User, ecc. C'è una buona ragione per farlo?

L'unica ragione che mi viene in mente è di evitare la collisione dei nomi. Ma succede davvero? Le persone eseguono più app in un unico database? C'è qualche altro motivo?

È stato utile?

Soluzione

In SQL Server 2005 e versioni successive la funzionalità dello schema elimina la necessità di qualsiasi tipo di prefisso. Un buon esempio del loro utilizzo può essere trovato leggendo gli Schemi in AdventureWorks .

In alcune versioni precedenti di SQL Server, avere un prefisso per creare uno pseudo namespace potrebbe essere utile con i DB con molte tabelle.

A parte questo, non riesco davvero a capire il punto.

Altri suggerimenti

Personalmente, non vedo alcun valore in esso. In effetti, è un peccato per le caratteristiche simili all'intellisense perché tutto inizia con MS_. :) Anche il Maestro è d'accordo con me .

Gli schemi enormi hanno spesso molte tabelle con scopi simili, ma distinti. Pertanto, vari "segmentati" convenzioni di denominazione.

Accidenti, non ho ricevuto il primo post :-)

Anche quando il database contiene solo un'applicazione, i prefissi possono essere utili per raggruppare parti simili dell'applicazione. Quindi le tabelle che contengono informazioni cutomer potrebbero essere precedute da cust_, quelle che contengono informazioni di magazzino potrebbero essere precedute da inv_ (per l'inventario), quelle che contengono informazioni finacial potrebbero essere precedute da fin_, ecc.

Ho lavorato su sistemi in cui esiste un database esistente per un'applicazione che è stata creata e gestita da una società diversa e abbiamo dovuto aggiungere un'altra app che utilizza grandi quantità degli stessi dati con solo alcune tabelle extra nostro, quindi in quel caso avere un prefisso specifico per l'app può aiutare con la separazione.

Leggermente tangenzialmente alla domanda originale, ho visto i database usare prefissi per indicare il tipo di dati che una tabella contiene. Ci sarebbe un prefisso per le tabelle di ricerca che sono ovviamente abbastanza statiche sia per dimensioni che per contenuto e un prefisso diverso per le tabelle che contengono dati variabili. Questo a sua volta può essere suddiviso in un prefisso per le tabelle che vengono aggiunte ma non realmente modificate come la registrazione, gli ordini elaborati, le transazioni dei clienti ecc. E un altro per dati più variabili come il saldo dei clienti o altro. Le tabelle dei collegamenti potrebbero anche avere un proprio prefisso per separarle.

Non ho mai visto una collisione di denominazione, in quanto di solito non ha senso inserire tabelle di applicazioni diverse nello stesso spazio dei nomi del database. Se avessi una sorta di libreria riutilizzabile che potrebbe essere integrata in diverse applicazioni, forse questo potrebbe essere un motivo, ma non ho visto nulla del genere.

Tuttavia, ora che ci penso, ci sono alcuni provider di web hosting a basso costo che consentono agli utenti di creare solo un numero molto piccolo di database, quindi sarebbe possibile eseguire un numero di applicazioni diverse utilizzando un singolo database, quindi fintanto che i nomi non si scontrano (e una tale convenzione di prefisso sarebbe sicuramente di aiuto).

Più applicazioni che utilizzano una tabella particolare, corretto. I prefissi impediscono la collisione del nome. Inoltre, è piuttosto semplice eseguire il backup delle tabelle e mantenerle nello stesso database, basta cambiare il prefisso e il backup sarà perfettamente funzionante, ecc. A parte questo, è solo una buona pratica.

I prefissi sono un buon modo per ordinare quali oggetti sql sono associati a quale app quando più app si immettono nello stesso database.

Ho anche aggiunto il prefisso agli oggetti sql in modo diverso all'interno della stessa app per facilitare la gestione della sicurezza. cioè tutti gli oggetti con admin_ necessitano di questa sicurezza applicata e il resto ha bisogno di qualcos'altro.

I prefissi possono essere utili per persone, strumenti di ricerca e script. Se la situazione è semplice, tuttavia, probabilmente non è affatto utile per loro.

Viene spesso utilizzato se diverse applicazioni condividono un database. Ad esempio, se installi Wordpress, prefigura tutte le tabelle con " wp_ " ;. Questo è utile se desideri che le tue applicazioni condividano i dati molto facilmente (ad esempio sessioni su tutte le applicazioni della tua azienda)

Esistono comunque modi migliori per farlo, e non ho mai prefisso i nomi delle mie tabelle, poiché ogni applicazione ha il proprio database indipendente.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top