[Resolu] Question Kon sur Id

Eléphant du PHP | 78 Messages

03 oct. 2007, 11:40

Je suis pas sûr que ce soit la plus judicieuse des questions que je vais poser, mais bon, vu que le ridicule ne tue pas, je me lance.

Je sais que grâce à l'auto incrément on a un identifiant unique de chaque enregistrement.
J'ai donc une table 'destinataire' avec une id "id_force" qui me permet d'avoir une id unique pour chaque destinataire.

J'ai une autre table 'expe' avec des informations sur des expéditions vers les dits-destinataires et comme clé primaire "id_Test" et comme clé étrangère "id_force". Ce qui juste là est logique.

Par contre je me pose la question sur la nécessité d'avoir cette clé étrangère dans la table 'expe' dans la mesure où dans mes requêtes, je ne fais jamais appel à la table 'destinataire', qui en fait me sert juste de support et qu'il est peu probable, par rapport à mon application que j'y fasse appel.

Voilà donc j'attends vos avis sur la question.
Modifié en dernier par albatross le 04 oct. 2007, 12:08, modifié 1 fois.

ViPHP
ViPHP | 2144 Messages

03 oct. 2007, 12:01

:roll:
C'est un peu contradictoire, tu as une raison d'avoir un lien entre ces deux tables ? Ou bien des informations de la table destinataires se retrouvent-elles dans l'autre table ? (Ce qui serait un problème potentiel..)

Eléphant du PHP | 78 Messages

03 oct. 2007, 12:11

:roll:
C'est un peu contradictoire, tu as une raison d'avoir un lien entre ces deux tables ? Ou bien des informations de la table destinataires se retrouvent-elles dans l'autre table ? (Ce qui serait un problème potentiel..)
Ci-dessous les champs de chaque table :
-Destinataire
id_force
nom_force
pays_force

-Expes
id_Test
nom
id_force
produit
date
expe
bordereau
colisage
commentaires

Au départ, j'avais rajouté le champ 'produit' dans la table "destinataire", mais je l'ai enlevé.

ViPHP
ViPHP | 2144 Messages

03 oct. 2007, 12:16

Ce qui est contradictoire, c'est que tu nous demandes si un lien entre deux tables a une raison d'être.
On ne peut pas répondre à cette question, sans connaitre suffisament le contexte dans lequel cette base de donnée.
A quoi sert, chaque table ?
En quoi les informations de la première table, ont un impact sur les données de la seconde ?
Etc...

Eléphant du PHP | 78 Messages

03 oct. 2007, 12:22

Ce qui est contradictoire, c'est que tu nous demandes si un lien entre deux tables a une raison d'être.
On ne peut pas répondre à cette question, sans connaitre suffisament le contexte dans lequel cette base de donnée.
A quoi sert, chaque table ?
En quoi les informations de la première table, ont un impact sur les données de la seconde ?
Etc...
Ok. La bdd est pour un suivi des expéditions.
Actuellement je ne me sers des informations de la table 'destinataire' que comme un répertoire, mais pour l'instant je ne fais pas de requêtes vers cette table.
La table 'expes' concerne les informations des expéditions, dans laquelle apparaît entre autres le nom du destinataire.

Je ne me sers de la table destinataire qu'au moment de la saisie des informations dans la table expés, et ce pour être cohérent et ne pas avoir d'errreurs quant au nom des destinataires.
J'espère avoir été plus clair, ce coup-ci :)

ViPHP
ViPHP | 2144 Messages

03 oct. 2007, 12:34

La table 'expes' concerne les informations des expéditions, dans laquelle apparaît entre autres le nom du destinataire.
Le nom du destinataire est donc mémorisé en même temps, dans la table des destinataires et dans la table des expéditions ? C'est pas forcément l'idéal, il vaudrait mieux éviter la redondance des données et ne mémoriser les informations propres à un destinataire, uniquement dans la table destinataires, et utilisé la clé étrangère pour faire le lien entre les deux tables.

Eléphant du PHP | 78 Messages

03 oct. 2007, 15:14

La table 'expes' concerne les informations des expéditions, dans laquelle apparaît entre autres le nom du destinataire.
Le nom du destinataire est donc mémorisé en même temps, dans la table des destinataires et dans la table des expéditions ? C'est pas forcément l'idéal, il vaudrait mieux éviter la redondance des données et ne mémoriser les informations propres à un destinataire, uniquement dans la table destinataires, et utilisé la clé étrangère pour faire le lien entre les deux tables.
Effectivement le nom est bien mémorisé dans les deux mais pas sous la même dénomination, comme je ne voulais pas qu'il y ait de soucis avec ça.
Il est donc nommé comme ci-dessous :
-Destinataire
nom_force
-Expes
nom

ça y est je récupère l'identifiant, donc la clé étrangère, cela me permettra par la suite de ne pas avoir de soucis entre les tables.
Merci.
[RESOLU]