Un cas que j'ai trouvé parfois est quelque chose comme ceci :
Tableau pays_id contient une seule colonne avec un ID numérique pour chaque pays.
Tableau pays_description contient la colonne avec l'ID du pays, une colonne avec l'ID de la langue et une colonne avec le nom du pays localisé.
Tableau entreprises_usines contient des informations pour chaque usine de l'entreprise, y compris le pays dans lequel elle est située.
Ainsi, pour maintenir la cohérence des données et des données indépendantes de la langue dans les tables, la base de données utilise ce schéma avec des tables ne comportant qu'une seule colonne pour permettre des clés étrangères sans dépendance de la langue.
Dans ce cas, je pense que l'existence de tableaux à une colonne est justifiée.
Modifié en réponse au commentaire de : Quassnoi
![]()
(source : <a href="http://lh5.ggpht.com/_7ON9I_WO6GU/SikFHBtzcxI/AAAAAAAAA-4/6MrVUCHGoWU/s800/taules.png" rel="nofollow noreferrer">ggpht.com </a>)
Dans ce schéma, je peux définir une clé étrangère dans la table company_factories qui ne nécessite pas d'inclure la colonne Language sur la table, mais si je n'ai pas la table countries_id, je dois inclure la colonne Language sur la table pour définir la clé étrangère.
0 votes
J'ai un peu de mal à imaginer un cas d'utilisation pour un tableau ne comportant qu'une seule colonne. Pouvez-vous me donner un exemple ?
0 votes
Mais au moins ne créez pas d'index pour cela !
3 votes
Les codes des États américains sont un exemple classique de définition d'un domaine.
3 votes
J'ai déjà vu une table de base de données utilisée pour contenir une valeur de verrouillage pour une application.
0 votes
J'ai utilisé ce modèle pour créer des ensembles de données. Chaque enregistrement de la table principale possède un champ SET. Les enregistrements ayant le même SET sont connectés. Comment insérer plusieurs enregistrements avec le même SET ? Il suffit d'utiliser la commande 'INSERT INTO sets VALUES ()' et d'utiliser le dernier ID d'insertion comme ID de SET pour attacher les enregistrements. J'aurais peut-être pu utiliser des UUID, mais cela ne me semble pas correct.
0 votes
Un autre cas d'utilisation est un drapeau booléen qui est habituellement FAUX. Je créerais une table avec une colonne qui est à la fois clé primaire et clé étrangère.