2017-09-05 5 views
-1

J'ai besoin de votre aide pour résoudre le problème de normalisation des tables car je suis un nouveau SQL. J'ai cinq tables.Normalisation des tables

Table1-->Column1,Column2. 
Table2-->Column3,Column4. 
Table3-->Column5,Column6,Column3. 
Table4-->Column7,Column8,Column5. 
Table5-->Column9,Column10,Column11,Column12,Column1,Column5,Column7. 

Ici Column1, colonne3, Column5, et Column9 sont colonne 7 clé primaire et Column1, Column5 et clés étrangères sont colonne 7 pour mes entrées et Tableau 5 de PHP seront à Tableau 5. Le problème est que je reçois des entrées en double à Table5. Il y aura plusieurs entrées à Table5 dans un jour. Je veux donner (Colonne1 et Colonne7) comme une clé unique .Il existe un moyen de donner une clé unique pour 2 clés étrangères combinées. J'ai essayé,

Alter Table Table5 Add UNIQUE KEY(Column1,Column7); 

mais en obtenant l'erreur en tant que valeur dupliquée pour column1. Il s'agit d'une application interne fonctionnant sous XAMPP et les données sont saisies par différents systèmes via LAN et enregistrées dans le serveur local. Cela pose un problème.Veuillez aider à résoudre le problème car plus de 1000 données sont entrées dans une journée.

Merci d'avance.

+2

Veuillez essayer d'utiliser des noms significatifs dans vos exemples. C'est beaucoup plus facile à lire que Colonne1 .... Colonne12 –

+0

. S'il vous plaît lire et agir sur [mcve]. Donnez le DDL exact, les messages d'erreur, le contenu de la table, etc. Lisez la documentation officielle relative aux index et FK UNIQUES. Si vous obtenez à tort des entrées dupliquées dans 5, les empêcher d'être insérées ne résout qu'une partie du problème. Pourquoi cela arrive-t-il? Que devrait-il se passer? PS Ce n'est pas une normalisation. Que pensez-vous que ce mot signifie? – philipxy

+1

Donc, vous exécutez cette instruction ALTER TABLE et obtenez une erreur qu'il y a des doublons dans la table? Ensuite, supprimez d'abord les doublons, puis exécutez l'instruction. –

Répondre

0

Vous devez envisager de créer une clé composite sur Table5 comme ceci: au lieu de Colonne9 comme une clé primaire utilisez Colonne1, Colonne5, Colonne7 comme une clé composite.