[Résolu]Pourquoi limiter longueur VARCHAR ?

Discussions sur le module de base de données Base et plus particulièrement sur le langage SQL ou sur les connexions aux SGBD tiers.
Les questions sur les macros doivent être postées dans la section dédiée en dessous.

Modérateur: Vilains modOOs

Règles du forum
Cette section est dédiée au module Base et plus particulièrement sur le langage SQL ou sur les connexions aux SGBD tiers. Vous ne devez pas poster ici de questions sur les macros mais utiliser la section éponyme.
Pour accélérer les réponses, vous pouvez mettre en ligne votre base en joignant un fichier ODB : comment faire.

[Résolu]Pourquoi limiter longueur VARCHAR ?

Messagepar camil » 19 Juin 2019 09:14

Bonjour,
Je viens poser une question basique (je ne trouve pas de réponse claire sur internet) :
Dans la mesure où on peut limiter la longueur saisie dans un formulaire quel est l'intérêt de limiter la longueur d'une VARCHAR directement dans la table ?
Dernière édition par camil le 20 Juin 2019 15:54, édité 1 fois.
LibreOffice 6.1.6.3 X64 - Windows 10
camil
Membre lOOyal
Membre lOOyal
 
Message(s) : 33
Inscrit le : 28 Mai 2019 09:53

Re: Pourquoi limiter longueur VARCHAR ?

Messagepar jeanmimi » 19 Juin 2019 13:34

Bonjour,

Le formatage d'un contrôle, par exemple avec le contrôle Champ formaté (c'est à dire un Masque de saisie avec sa spécificité) est plutôt une contrainte imposée à l'utilisateur.
Un champ de Table de Type TEXT(VARCHAR) est invisible à l'utilisateur et ne concerne que la structure de la Table et l'indexation du contenu du champ. Si on est sûr que le contenu du champ de la Table ne dépassera jamais une longueur précise, il est alors intéressant de ne pas paramétrer une longueur supérieure à celle nécessaire.
LibreOffice Version : Version: 6.3.2 (x64) (1 octobre 2019)
Java (x64) 1.8.0_xxx, Windows 10, Thunderbird, Firefox
Avatar de l’utilisateur
jeanmimi
Grand Maître de l'OOffice
Grand Maître de l'OOffice
 
Message(s) : 14999
Inscrit le : 03 Mars 2006 17:02
Localisation : Venise verte

Re: Pourquoi limiter longueur VARCHAR ?

Messagepar camil » 20 Juin 2019 07:29

jeanmimi a écrit:Si on est sûr que le contenu du champ de la Table ne dépassera jamais une longueur précise, il est alors intéressant de ne pas paramétrer une longueur supérieure à celle nécessaire.

J'ai lu qu'une VARCHAR est stockée sur 2 octets + le nombre de caractères. Donc, si je comprends bien, tant en stockage qu'en mémoire la place occupée sera limitée à la longueur effective de la chaîne + 2.
Base me propose une longueur max de 100 lors de la création d'un champ texte en VARCHAR.
J'ai, par exemple, un champ "Libellé". Ma seule contrainte est de limiter sa longueur pour un affichage sur une seule ligne à l'écran (disons une 50-60 caractères). Ca, je peux très simplement le limiter dans mon formulaire de saisie. Je ne comprends pas pourquoi en limiter la longueur à la conception de la table.
Je veux dire : concrètement quel intérêt ?
LibreOffice 6.1.6.3 X64 - Windows 10
camil
Membre lOOyal
Membre lOOyal
 
Message(s) : 33
Inscrit le : 28 Mai 2019 09:53

Re: Pourquoi limiter longueur VARCHAR ?

Messagepar Piaf » 20 Juin 2019 13:29

Bonjour
camil a écrit:Je ne comprends pas pourquoi en limiter la longueur à la conception de la table.
La structure des données est stockée dans le moteur de la base de données, le formulaire n'est qu'une interface permettant la saisie ou la consultation.
Tu peux avoir accès aux données avec une autre interface que Base. Si la structure est définie dans la table, quelque soit l'interface utilisée tu ne pourra pas dépasser pour la saisie le nombre de caractères défini.
A+
Libre Office Version: 6.1.6 et Apache OpenOffice 4.1.6 Sur Xubuntu 18.04 AMD64
Piaf
GourOOu
GourOOu
 
Message(s) : 5622
Inscrit le : 25 Nov 2011 19:07
Localisation : Guyane

Re: Pourquoi limiter longueur VARCHAR ?

Messagepar camil » 20 Juin 2019 15:52

OK je comprends, je ne l'avais pas envisagé.
Merci pour l'argument et pour la clarté :)
LibreOffice 6.1.6.3 X64 - Windows 10
camil
Membre lOOyal
Membre lOOyal
 
Message(s) : 33
Inscrit le : 28 Mai 2019 09:53


Retour vers Base de données

Qui est en ligne ?

Utilisateur(s) parcourant ce forum : Prismx et 6 invité(s)