SQL - CUAL ES EL PROCEDIMIENTO MAS ADECUADO AL CREAR BASE DE DATOS?

 
Vista:

CUAL ES EL PROCEDIMIENTO MAS ADECUADO AL CREAR BASE DE DATOS?

Publicado por Kev.code (1 intervención) el 11/10/2018 18:22:48
Quiero hacer un script de SQL en mi programa (vb.net) que al instalarlo, cree una base de datos con todas sus tablas y relaciones resectivas.
1
Dim CrearBase As New SqlCommand = SqlCommand("CREATE T...")

Aquí el dilema,
Quiero saber si es mejor crear cada tabla con sus campos en su CREATE TABLE y luego al tener todas las tablas creadas, realizar todos los ALTER TABLE necesarios para relacionar las tablas. Pero, También pienso que puedo hacer las tablas en un orden especifico que lleve su orden para relacionar dentro de el CREATE TABLE. (Ya tengo el script de esta manera)

Entonces, ¿Cual es la mejor opción? (la más eficiente)

A) Crear Tablas primero y una vez creadas todas las tablas aplicar ALTER TABLE para relacionar la base de datos.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
CREATE TABLE Tabla1(
ID_T1 int NOT NULL,
Nombre varchar(20) NOT NULL,
...)
 
CREATE TABLE Tabla2(
ID_T2...)
 
CREATE TABLE Tabla3(
...)
 
--ENTONCES AL TENER TODAS LAS TABLAS CREADAS RELACIONAR
 
ALTER TABLE Tabla2
ADD FOREIGN KEY (ID) REFERENCES Tabla1(ID_T1);
 
ALTER TABLE Tabla3
ADD FOREIGN KEY (ID) REFERENCES Tabla1(ID_T2);
 
...

B) Crear relaciones dentro de la orden CREATE TABLE siguiendo el orden correcto.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
CREATE TABLE Tabla1(
ID_T1 int NOT NULL,
Nombre varchar(20) NOT NULL,
...
 
CREATE TABLE Tabla2(
ID_T2 int NOT NULL,
ID_T1 int NOT NULL,
... CONSTRAINT FK_Tabla1_Tabla2 FOREIGN KEY (ID_T1) REFERENCES Tabla1(ID_T1)
)
 
CREATE TABLE Tabla3(
ID_T3 int NOT NULL,
ID_T2 int NOT NULL,
... CONSTRAINT FK_Tabla2_Tabla3 FOREIGN KEY (ID_T2) REFERENCES Tabla2(ID_T2)
)

Me cuesta un poco explicarme claramente.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder