bonjour,
hormis la lecture je pense que mes questions ne sont pas compliquées.
tout d'abord je n'ai que peu de rapport avec le monde des bases de données. J'ai des rudiments en programmation objet (c++ essentiellement) et par hobbyisme j'aimerai faire un site avec base de données. Au travers de mes lectures sur le sujet, certaines zones d'ombres sont apparues. Ces questions etant surement tres basique je n'y ai pas lu d'eclaircissement sur le net. Voici donc les quelques interrogations qui me hantent :

Tout d'abord la difference entre varchar(taille) et text/blob :

si j'ai bien compris les text/blob voient leur taille allouée dynamiquement et les varchar sont fixé lors de la creation de la table. Ainsi un varchar(250) verra ttes les instances de la table avec une taille fixe de 250 caractere. alors que le mm chp blob s'adaptera a la donnée (jusqu'a sa limite de stockage). Si c'est bien le cas pourquoi encore utiliser les varchar. Sachant que selon votre faq mysql un text/blob ne consomme que 1 à 4 octets.

Concernant les tailles maintenant :

Si je veux utiliser un tinyInt unsigned je peux aller de 0 à 255 je crois. Mais si je ne veux aller que de 0 à 25 ? dois je limiter la taille? et est ce reellement souhaitable ?

Concernant la limitation en taille des types simples :

Si je "declare" un varchar(30) la chaine correspondante aura une longueur de 30 caracteres, jusque la je comprends. Suivant la même logique si je declare un smallint(2) unsigned je peux aller de 0 à 99?
Mais dans l'optique d'un indice qui ne pourra jamais depasse la valeur 55. Est ce que pouvoir aller jusqu'a 99 est un gachis de place? ou plus vraisemblablement le codage permettant d'aller jusqu'a la dizaine fait que niveau place cela ne change rien.

Cette question concerne le lien entre deux tables ayant un nb d'instances totalement different :

Admettons que j'ai une table produit, qui au final fera apparaitre dans les 1000 produits et une table typePrix qui n'aura que deux instances. Cela signifie que quelque soit le produit, il n'aura le choix qu'entre deux prix.
A chaque creation d'un produit, dois je créer un prix (ne pouvant avoir que deux valeur?) ou peut on faire pointer 500 produit vers le prix d'id 1 et les 500 autres vers l'autre l'instance typeprix? Ou existe il une maniere plus efficace? Est ce dans ce genre de cas que l'utilisation d'un enum ou d'un set peut etre pertinent?

Question liée au text/blob

Les deux peuvent etre nuls et gerent les chaines. La difference est que le blob est sensible a la casse. Dans le cas d'une recherche dans la base, cela impose à l'utilisateur d'etre plus vigilant. N'est pas preferable pour nous (par soucis de commodité) d'ajouter plus de souplesse dans les recherches ?

J'ai encore de nombreuses interrogations mais je ne souhaite pas rendre mon post encore plus illisbles. Ces questions sont peut etre suprenante ou etranges mais je n'ai pas une formation informatique et encore moins en base de données. Donc n'ayant pas suivi de cours tout est nouveaux pour moi.
Heureusement qu'il existe de nombreuses ressources en ligne tres claire et completes

Merci d'avance.

ps: ma formation consistait en du webdesign d'ou les rudiments en programmation et merise.