Je souhaite créer une table de base de données qui aura multiplier des informations. L'une de ces informations est des téléphones. Comment créer une table de base de données que dans la colonne PHONES contiendra Soyons des sous-colonnes, car un utilisateur peut avoir plus d'un téléphone et être stocké dans la même ligne pour le même ID. P>
ci-dessous est une image de ce que je veux dire et comment je veux que ma table soit ... p>
4 Réponses :
Il n'y a pas de notion de sous-cololumns em> dans des bases de données relationnelles. Si vous souhaitez stocker un nombre variable de téléphones par utilisateur, une solution consiste à créer une autre table pour les stocker comme rangées em>. Les téléphones code> code> doivent avoir une colonne pour stocker l'ID de l'utilisateur que chaque téléphone concerne, avec une contrainte de clé étrangère garantissant que la valeur contenue dans cette colonne existe dans les utilisateurs SO: P> Code> Table. P>
create table users (
id int primary key auto_increment,
name varchar(50) not null,
address varchar(50)
);
create table phones(
id int primary key auto_increment,
user_id int not null,
phone_no varchar(20) not null,
foreign key (user_id) references users(id)
);
Vous ne le faites généralement pas. Vous créez une autre table. Dis que vous avez: puis vous créez une table "jonction" ou "association": p> Vous ne spécifiez pas la base de données . J'ai utilisé série code> pour la clé primaire car il est utilisé par Postgres et facile à taper. P> P>
C'est un flux d'ER comme a un diabotone dans votre cas via la clé de clé étrangère principale
Schema Schema MS SQL Server 2017 < / strong>: p> Query 1 fort>: p>
Quels DBM utilisent?
Bien entendu, la normalisation de votre modèle de données (comme indiqué dans toutes les réponses) est la solution recommandée, mais certains DBMSES prennent en charge Tableaux i>, qui pourraient être utilisés pour stocker ce type d'informations.