mysql - Comment résoudre le problème selon lequel deux tables se réfèrent l'une à l'autre en tant que clés étrangères dans une table de base de données
伊谢尔伦
伊谢尔伦 2017-06-08 11:03:31
0
2
1171

J'ai deux tables, l'une est la table des employés et l'autre est la table des départements.

  • La table des employés a deux attributs : le numéro d'employé et le numéro de service

  • Le département a deux attributs : le numéro de département et le numéro de responsable.

Évidemment, le numéro de responsable doit utiliser le numéro d'employé dans la table des employés comme référence de clé étrangère, et le numéro de département dans la table des employés doit utiliser le numéro de département dans la table des départements comme référence de clé étrangère.

En conséquence, il y aura un conflit entre les deux tables étant des références de clé étrangère l'une à l'autre. Comment le résoudre ?

伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

répondre à tous(2)
女神的闺蜜爱上我

La structure de la table est déraisonnable !

la table des couleurs jue devrait être ajoutée

Ajouter des champs de rôle à la table des employés

Liste des personnages

id Nom du personnage
1 Gérant
2 Secrétaire
3 Chien qui bouge des briques

Liste des employés

id Personnage Département Nom
1 1 1 Gérant
2 2 1 Xiaomi
3 3 1 Disi

Table du département

id Nom du département
1 Ministère de l'Industrie
2 Département des affaires
3 Département R&D
迷茫

Pourquoi la « référence mutuelle de clé étrangère » est-elle une contradiction ?

Si vous souhaitez ajouter un nouveau service et que le responsable de ce service est également une nouvelle personne, vous pouvez d'abord utiliser un ancien employé pour « agir » en tant que responsable, puis le modifier une fois l'ajout réussi. Par exemple, l'ajout d'un nouveau service financier et du nouveau responsable Zhang San :

insert into 部门表 select id=财务部, manager=老王
insert into 职工表 select id=张三, department=财务部
update 部门表 set manager=张三 where id=财务部

La question suivante est : comment ajouter lorsque les deux tables sont vides ? À ce stade, vous pouvez d'abord ajouter une ligne de données, puis ajouter les contraintes de clé étrangère.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal