Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
SQL Server 2000/2005/2008, Express, Access, MySQL, Oracle
Consiglio su T-SQL, e SQL 2008/Express
sabato 13 febbraio 2010 - 16.33
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
Anonimo
Profilo
| Senior Member
392
messaggi | Data Invio:
sab 13 feb 2010 - 16:33
Salve, sto studiando l'SQL express, e volevo sapere se per voi questa tabella sia alla perfezzione.
ora vi posto il t-sql.
USO SQL EXPRESS 2008/2005
--
CREATE TABLE users
(
ID bigint IDENTITY(1,1) PRIMARY KEY,
Name varchar(50),
Surname varchar(50),
sex tinyint, /* 0= Maschio, 1=Femmina */
birth nvarchar(50),
age int,
Username nvarchar(255),
Username_title nvarchar(255), /* User founder , user registred , user newbie*/
picUrl nvarchar(255),
Email nvarchar(255),
[Password] nvarchar(50),
location nvarchar(50),
contact_ text,/* Info contact, Split-->> skype, msn, aol, */
info text,
Livello bigint, /* 10=Admin, 20=Manager, 30=User o 1=Admin, 2=Manager, 3=User etc...*/
Ruolo nvarchar(15), /* Admin, Manager , User --> Forms Authenticate Users*/
Ip nvarchar(15),
Browser nvarchar(255),
update_login datetime, /* Login Access Update date time */
[login] int, /* Login True==False */
Dir bigint, /* update user directory data file personal*/
_key bigint, /* key active sending link confirm */
status bigint, /* 0=Non Active, 1=Active, 2=Banned */
data_reg datetime
)
-----
Mi dite se va bene per usare quantità di utenti....infiniti. senza poi ci rischia di re-creare il db.?
grazie
alx_81
Profilo
| Guru
8.814
messaggi | Data Invio:
lun 15 feb 2010 - 01:17
>Salve,
Ciao
> birth nvarchar(50),
se è una data, usa il tipo Date (se hai 2008) o smalldatetime (se hai 2005).
Date non salva l'orario, quindi se ti serve, anche in 2008, usa smalldatetime. Se invece ti basta il giorno preferisci Date.
> age int,
eheheh.. spero.. ma se è in anni, direi che tinyint basta e avanza
> Username nvarchar(255),
io preferirei meno caratteri, non credo che molta gente ricorderebbe un username di più di una 20ina di caratteri, non trovi?
>Username_title nvarchar(255), /* User founder , user registred , user newbie*/
Qui c'è un problema di normalizzazione. Forse è meglio che metti un codice che identifichi quella descrizione e che magari la descrizione la porti in una tabella di dominio.
Potresti usare un tinint con valore 1,2 o 3. Poi fare una tabella degli usertitles la cui chiave è 1,2 o 3 e in cui metti la descrizione estesa.
> location nvarchar(50),
se si tratta di paese, vale lo stesso discorso del titolo, meglio una tabella dei paesi e un codice in questa tabella.
>contact_ text,/* Info contact, Split-->> skype, msn, aol, */
intanto preferisci il varchar(MAX) al text, ma poi, come mai ti serve così lungo? ricorda che mettere le informazioni in maniera non atomica (ovvero un solo valore per ogni campo) significa violare la prima forma normale dei database ed è una pratica da non seguire.
> info text,
preferisci il varchar(MAX)
>Livello bigint, /* 10=Admin, 20=Manager, 30=User o 1=Admin, 2=Manager, 3=User etc...*/
mmmmh... bigint... secondo me smallint è già tanto. 65535 livelli ti bastano? Se sì, smallint, altrimenti se già 255 sono sufficienti, tinyint
> Browser nvarchar(255),
idem come gli user titles
> [login] int, /* Login True==False */
se è un true/false, bit.
> Dir bigint, /* update user directory data file personal*/
bigint? sono troppi.
> _key bigint, /* key active sending link confirm */
se puoi riduci anche qui.
>status bigint, /* 0=Non Active, 1=Active, 2=Banned */
tinyint, assolutamente.
>Mi dite se va bene per usare quantità di utenti....infiniti.
infiniti è irrealizzabile, nel senso che con bigint sei a posto per centenari, a meno che non iscrivi un milione di utenti al giorno, e spero per te
>senza poi ci rischia di re-creare il db.?
per evitare di dover "ricreare" il database o comunque per evitare di metterci troppo le mani accanto dando anche consistenza segui sempre queste regole, cercando di arrivare alla terza forma normale:
http://it.wikipedia.org/wiki/Normalizzazione_del_database
>grazie
di nulla!
--
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT
http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !