[TNT] modification de la base de donnees

Guillaume Lelarge gleu at wanadoo.fr
Dim 26 Jan 13:28:19 PST 2003


Bonsoir à tous,

J'aurais tendance à dire comme Lionel et didbaba. Ne pas mettre le nom de la 
table sur les champs de celle-ci. C'est une information redondante et, comme 
toute information redondante, elle ne se vérifiera pas à chaque fois. 
J'aurais personnellement plutôt tendance à nommer chaque champ par rapport à 
sa fonction. Et pour être sûr qu'aucune fonction inadéquate n'est exécutée, 
je créerais un script par table dans lequel se feraient les opérations 
insert, update, delete.

Le Dimanche 26 Janvier 2003 01:10, vous avez écrit :
> Table pseudo:
>  - renommage uid en pseudo_id(16) unsigned
Je le remplacerais par id.
>  - suppression du champ 'comment' (inutilise)
OK.
>  - suppresion du champ 'photo' (inutilise)
OK.
>  - passage de 'fonction' a tinyint(1) unsigned
OK si on gère différents types de fonction. Au départ, ce champ devait 
permettre d'indiquer différentes fonctions (admin, traducteur, relecteur). Si 
ce champ doit toujours servir à différencier un admin d'un user lambda, il 
serait mieux de le remplacer par le champ 'admin' de type booléen.
>  - idem pour afficher
J'en ferais plutôt un booléen.
>  - passage de date_connect a derniere_connect datetime
OK.
>  - passage de nb_connect a int(10) unsigned
OK.

> Table demande:
Cette table est-elle toujours utile? Au départ, elle permettait d'enregistrer 
les demandes de pseudo et de mots de passe perdu. Actuellement, elle ne sert 
que pour les mots de passe perdus. Doit-on toujours enregistré ces demandes? 
Ou doit-on simplement les envoyer par mail?? Didbaba, comment la caverne 
gère-elle les 'plaintes' de mots de passe perdus??
>  - passage de uid a demande_id(16) unsigned
Je le renommerais id.
>  - passage de infossup a text(255)
OK.

> table dico:
>  - passage de termeuid a terme_id(16) unsigned
>  - passage de termeus a terme_us text(255)
>  - passage de termefr a terme_fr text(255)
>
Cette construction de table montre bien ce que je disais plus haut. En voyant 
cette construction, j'aurais tendance à me dire que la table s'appelle terme. 
Or elle s'appelle dico.
Donc, pour moi, il faudrait changer le nom de la table par terme et les 
colonnes devraient être id, us, fr.

> table livre:
>  - passage de id a livre_id int-16) unsigned
J'aurais conservé id.
>  - passage de titre a titre_livre varchar(32)
J'aurais conservé titre.
>  - passage de responsable a responsable_id int(16) unsigned
C'est le champ id de la table responsable ou c'est le champ responsable de la 
table id? :)
J'aurais remplacé par id_responsable car il s'agit d'un lien vers le champ id 
de la table des pseudo.

> table session:
>  - suppression, car devenue inutile avec les sessions php4 ?? (pas encore
> regarde)
>
OK.

> table traduction:
>  - passage de uid a traduc_id int(16) unsigned
id de type serial
>  - passage de chapitre a varchar(32)
>  - passage de nom a titre_livre varchar(32)
>  - passage de rep_en a rep_en varchar(255)
>  - passage de rep_fr a rep_fr varchar(255)
>  - passage de chemin a varchar(64)
>  - passage de datetrad a datetime
>  - passage de traducteur a traducteur_id int(16) unsigned
>  - passage de daterel a datetime
>  - passage de relecteur a relecteur_id int(16) unsigned
>  - passage de livre a livre_id int(16)
>
Je ne suis pas du tout d'accord sur cette table. Il me semble intéressant, 
voire nécessaire, d'avoir une table contenant la liste des répertoires pour 
éviter de grossir inutilement la table traduction comme c'est le cas 
actuellement. Renommer celle-ci en fichier serait nécessaire du coup. Il 
faudrait supprimer les champs repertoire, rep_en et rep_fr, et modifier le 
chapitre en id_repertoire (type int)
Bref, cette table doit être complètement remodelée.

> Voila, la liste est terminee.
Il aurait été intéressant que tu donnes un 'sens' à ces colonnes, simplement 
leur signification. Même si je sais personnellement à quoi elles servent, ce 
n'est pas obligatoirement le cas de tous.

> Cela amene un premier probleme, ecrire un script de conversion de
> l'ancienne base vers la nouvelle. Il est particulierement important, car il
> faudrait eviter de perdre des donnees.
>
Ce n'est pas complexe à faire, mais cela demande du temps et des tests. A mon 
sens, le mieux est de construire le script permettant l'abstraction de bases 
de données, puis le script de création des tables de la base, puis les 
scripts des tables (pour les insert, update, delete). Enfin, tu pourras 
commencer l'écriture du script de transfert.

Bonne chance ;-)


-- 
Guillaume.
-- 
Unsubscribe: send email to listar at linuxfromscratch.org
and put 'unsubscribe lfs-traducfr' in the subject header of the message



More information about the lfs-traducfr mailing list