|  
    
```sql 
 CRÉER TABLE Propriétaire d'animaux (  
 OwnerID INT PRIMARY KEY AUTO_INCREMENT, -- Identifiant unique pour chaque propriétaire d'animal  
 FirstName VARCHAR(255) NOT NULL, -- Prénom du propriétaire (ne peut pas être nul)  
 LastName VARCHAR(255) NOT NULL, -- Nom de famille du propriétaire (ne peut pas être nul)  
 Adresse VARCHAR(255), -- Adresse du propriétaire (peut être nulle)  
 Ville VARCHAR(255), -- Ville du propriétaire (peut être nulle)  
 State VARCHAR(2), -- État du propriétaire (abréviation, peut être nulle)  
 ZipCode VARCHAR(10), -- Code postal du propriétaire (peut être nul)  
 Téléphone VARCHAR(20), -- Numéro de téléphone du propriétaire (peut être nul)  
 Email VARCHAR(255) UNIQUE, -- Email du propriétaire (doit être unique, peut être nul)  
 CreatedDate TIMESTAMP DEFAULT CURRENT_TIMESTAMP -- Enregistre la date à laquelle le propriétaire a été ajouté  
 );  
 ```  
  
 Justification des propriétés des colonnes :  
  
 * OwnerID (INT, PRIMARY KEY, AUTO_INCREMENT) : Il s'agit de la clé primaire, identifiant de manière unique chaque enregistrement de propriétaire d'animal. `INT` est un type de données approprié pour un identifiant numérique. `AUTO_INCREMENT` attribue automatiquement un numéro séquentiel unique à chaque nouvel enregistrement, simplifiant la saisie des données et garantissant l'unicité.  
  
 * Prénom (VARCHAR(255), NOT NULL) : Stocke le prénom du propriétaire. `VARCHAR(255)` permet une longueur raisonnable des noms. `NOT NULL` garantit que ces informations cruciales sont toujours fournies.  
  
 * Nom (VARCHAR(255), NOT NULL) : Semblable à FirstName, stockant le nom de famille et les informations requises.  
  
 * Adresse, Ville, État, Code postal (VARCHAR) : Ces colonnes stockent les informations d'adresse du propriétaire. `VARCHAR` est utilisé car les composants d'adresse peuvent varier en longueur. Ils peuvent être annulés car certains propriétaires peuvent ne pas fournir une adresse complète. Les longueurs sont choisies pour s'adapter aux longueurs d'adresse typiques. `State` utilise `VARCHAR(2)` en supposant des abréviations d'état.  
  
 * Téléphone (VARCHAR(20)) : Stocke le numéro de téléphone du propriétaire. `VARCHAR` est utilisé pour s'adapter aux variations des formats de numéros de téléphone. Il est annulable car certains propriétaires peuvent ne pas fournir leur numéro de téléphone.  
  
 * E-mail (VARCHAR(255), UNIQUE) : Stocke l'adresse e-mail du propriétaire. La contrainte `UNIQUE` garantit que chaque adresse e-mail est associée à un seul propriétaire. Ceci est important pour éviter les doublons et les incohérences potentielles des données. C'est nullable puisque le courrier électronique n'est pas toujours requis.  
  
 * Date de création (TIMESTAMP, DEFAULT CURRENT_TIMESTAMP) : Enregistre automatiquement la date et l'heure de création de l'enregistrement du propriétaire. Ceci est utile pour suivre les modifications des données et à des fins d’audit. Le `DEFAULT CURRENT_TIMESTAMP` garantit que ce champ est renseigné automatiquement lors de l'insertion.  
  
  
 Ce schéma offre un bon équilibre entre intégrité des données et flexibilité. Les contraintes « NOT NULL » garantissent que les informations essentielles sont capturées, tandis que les champs nullables autorisent des informations incomplètes, le cas échéant. La contrainte « UNIQUE » sur le courrier électronique permet de maintenir la cohérence des données. Le `AUTO_INCREMENT` sur `OwnerID` simplifie la gestion des données. Enfin, « CreatedDate » ajoute des informations de suivi précieuses.
 
 |