types, liens, tables, relations...

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : types, liens, tables, relations...

par Cyrano » 19 mai 2005, 10:28

MySQL ne tient pas compte de l'intégrité référentielle dans les tables de type MyISAM, mais tu pourrais le faire dans des tables InnoDB. Ce que tu peux faire pour les clés étrangères, c'est de les indexer et ensuite faire une pseudo intégrité référentielle par programmation en structurant tes application pour qu'on ne uisse pas par exemple enregistrer une valeur dans une table qui aurait en clé étrangère une référence vers une clé primaire inexistante

par renatane » 19 mai 2005, 10:04

merci bcp.

et comment faire savoir que c'est une clé etrangère?
là, j'ai mis les 2 en clé primaire, dans ma table. Mais est-ce qu'elles vont etre reconnues automatiquement comme appartenant a d'autres tables et se remplir dans cette table également? C'est super ambigue pour moi!

par Cyrano » 18 mai 2005, 18:00

Ok, pour le cours académique sur les types de champs, c'est ICI

Maintenant, pour les types au niveau des clés étrangères, ça doit être strictement le même que celui défini pour les clés primaires auxquelles elles correspondent. Si dans tun table A tu as une clé primaire en INT, la clé étrangère dans la table B devra être aussi en INT.

La différence entre CHAR et VARCHAR, c'est une question de longueur maximum que la donnée enregistrée pourra admettre. Un VARCHAR peut aller jusquà 255 caractères par exemple. Au delà, il vaut mieux choisir TEXT ou BLOB (Binary Long Object B... sais plus)

types, liens, tables, relations...

par renatane » 18 mai 2005, 16:07

salut tertous,

j'ai des problèmes de relation entre tables, de liens, de clé et de types.

Je suis entrain de créer mes tables dans ma base via phpMyadmin.

tout d'abord, en créant un champ dans une table, j'ai hesitté pour le type. En autres temps j'aurai mis varchar, mais là je me suis poser la question "pkoi pas char?" j'ai chercher un cours pour voir les differences entre ces 2 types mais tout ce que j'ai trouvé ce sont des points communs. QQun peut m'expliquer en 2/3 phrases les principales diff et avantages de ces deux types? svp


Ensuite, j'ai créer ma 3ème table (version), qui me pose bien des problèmes.
Cette table contient 9 champs dont 3 qui proviennent de 3 autres tables
(3 clés primaires etrangères). et 1 champs: id_version qui lui n'est pas comme on pourrait le croire la clé primaire de la table version.

En fait ,j'ai une table "note" qui contient 2 champs:
id_note(autoincrement clé primR)
et id_version.
J'ai ensuite une table "version" qui contient 9 champs dont:
id_note(autoincrement clé primR etrangère),
id_version,
id service (clé primaire etrangère)
et id_instance (clé primR etrangère)
j'aimerai que la clé primaire de ma table version soit id_note+id_version

(((((en clair et imagé: une note c par exemple: 1258_1 + 1258_2+ 1258_3...
une note c'est toutes les versions de la note.
Donc mon id_version va s'incrementé ssi la note (id_note) existe deja.)))))

Je ne sais pas quels types donner a mes champs clé etrangère ni comment definir ma clé primaire ("double") dans la table version, et ce, via phpMyadmin.

J'espère que c'est compréhensible, si pas, posez vos questions, j'essaierai de l'etre d'avantage (c'est embrouillé dans ma tête!)

Merci