2011-08-29 17 views
5

Ho fatto una ricerca nel database di un CMS:la progettazione del campo della tabella nel database mysql?

uid(Unique user ID): è impostato su int(11)

name(nique user name è impostato su varchar(60)

created(tiemstamp for when user was created) è impostato su int(11)

title il titolo dell'articolo è impostato su varchar(255)

1, quando dovrei usare Int o char o varchar o altri tipi

2, come impostare il numero nella parentesi.eg: varchar(60) grazie!

+0

Qual è la domanda? –

risposta

10

È necessario utilizzare INT quando si desidera utilizzare la chiave primaria (un INT è più veloce da cercare di una stringa) o calcolare i dati. Ad esempio, si desidera calcolare il numero di articoli acquistati da qualcuno al momento dell'ordine di alcuni prodotti online. Ogni riga avrà la descrizione dell'articolo, il prezzo, la quantità ordinata (e altro ancora - basta dare un esempio qui). In questo caso, con un INT per quantità sarà facile recuperare il numero di prodotto (numero totale di prodotti per la fattura) ordinato.

Le stringhe con tipo "char" e "varchar" sono leggermente diverse. Il tipo "char" è definito come segue:

Una stringa di lunghezza fissa che viene sempre riempita a destra con spazi alla lunghezza specificata quando archiviata.

Nelle parole, se si definisce un nome con char (200), verranno utilizzati 200 byte. Il tipo varchar è definito come segue:

Una stringa di lunghezza variabile. Nota: gli spazi finali vengono rimossi quando il valore è archiviato (questo differisce dalle specifiche ANSI SQL)

Nelle parole, se si definisce un nome con varchar (255) e il nome è "Tim", si utilizzare 4 byte. 3 per il nome +1 byte per la lunghezza del campo.

genere, si utilizza char (6) per i colori HTML (FFFFFF) e di solito si utilizza varchar per i nomi, gli indirizzi, ecc ...

Per quanto riguarda la seconda domanda, come di impostare il numero tra parentesi. Questo numero imposterà la lunghezza massima di una stringa. Se si imposta varchar (60) su un campo e quando si inserisce o si aggiorna il record e la lunghezza della stringa è maggiore di 60 caratteri, MySQL troncherà la stringa per utilizzare i primi 60 caratteri.

È possibile controllare tutti i tipi di campi qui: http://help.scibit.com/mascon/masconMySQL_Field_Types.html

È possibile anche leggere su database di normalizzazione: http://en.wikipedia.org/wiki/Database_normalization

+0

se si definisce un nome con varchar (255) e il nome è "Tim", verranno utilizzati 4 byte. 3 per il nome +1 byte per la lunghezza del campo. perché aggiunge 1 byte per la lunghezza del campo. grazie,. – zhuanzhou

+5

Il byte +1 viene eseguito dal motore MySQL. Non puoi cambiarlo. Poiché il varchar è una stringa di lunghezza variabile, è necessario indicare a MySQL la lunghezza della stringa. –

3

In genere, il tipo dipende da cosa è effettivamente necessario archiviare. Tuttavia, anche la velocità e la dimensione dell'indice PK sono molto importanti, quindi anche questo viene considerato come la progettazione delle tabelle del database.

Il numero tra parentesi indica la dimensione del tipo, che ha un significato diverso a seconda del tipo (ad esempio, varchar indica il numero massimo di caratteri che possono essere memorizzati). Si dovrebbe guardare al manuale del motore db per questo.

Problemi correlati