SQL server a été choisie pour la base de données !

code sql server

Avant de coder, et de partir too shuss, un peu de réflexion est de mise !

Heureusement, nous démarrons sur une application avec des tables simples (elles se complexifieront par la suite).

Le modèle de données

Nous avons un contexte qui est attaché à un créateur.
Un créateur peut avoir plusieurs contextes.

Pour cette première version, nous allons nous arrêter là.

modele donnee cetait quoi le contexte

Le choix de la base de données

Après la conception, reste à savoir sur quelle base nous allons créer ce modèle.

MySQL, Sql Server, PostgreSQL, … ? Le choix est dure et complexe.

Le serveur où sera publié le site web a déjà une licence Sql Server. Notre choix s’est donc arrêté sur ce SGDB (Système de gestion de base de données).
Pas de dernière version par contre pour nous, nous resterons sur Sql server 2008 R2.

Création de la base de données

Création de la table Person

SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE TABLE [dbo].[Person](
	[Id] [int] IDENTITY(1,1) NOT NULL,
	[Name] [nvarchar](max) NOT NULL,
	[Email] [nvarchar](max) NOT NULL,
 CONSTRAINT [PK_Person] PRIMARY KEY CLUSTERED 
(
	[Id] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]

GO

ALTER TABLE [dbo].[Person] ADD  DEFAULT (N'') FOR [Email]
GO

Création de la table Context

SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE TABLE [dbo].[Context](
	[Id] [int] IDENTITY(1,1) NOT NULL,
	[AuthorId] [int] NOT NULL,
	[CreatedDate] [datetime2](7) NOT NULL,
	[Message] [nvarchar](max) NOT NULL,
	[From] [nvarchar](255) NOT NULL,
	[HtmlTitle] [nvarchar](max) NOT NULL,
 CONSTRAINT [PK_Context] PRIMARY KEY CLUSTERED 
(
	[Id] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]

GO

ALTER TABLE [dbo].[Context]  WITH CHECK ADD  CONSTRAINT [FK_Context_Person_AuthorId] FOREIGN KEY([AuthorId])
REFERENCES [dbo].[Person] ([Id])
ON DELETE CASCADE
GO

ALTER TABLE [dbo].[Context] CHECK CONSTRAINT [FK_Context_Person_AuthorId]
GO

ALTER TABLE [dbo].[Context] ADD  DEFAULT (N'') FOR [From]
GO

ALTER TABLE [dbo].[Context] ADD  DEFAULT (N'') FOR [HtmlTitle]
GO

Une approche CodeFirst

En fait les deux scripts SQL ont été générées après coup.

Nous verrons dans une prochaine étape que nous allons créer les tables depuis le code Entities, avec une approche CodeFirst 🙂

Notre adresse

1 rue du guesclin
44000 Nantes

Notre téléphone

+33 2 79 65 52 87

Société

DevToBeCurious SARL
84860163900018 - Nantes B 848 601 639