Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 10/07/2006, à 16:06

Bismut

SQLite, manière de stocker des données et fonction d'affichages...

Bonjour, je suis en train d'étudier la possibilité de créer une base de données SQLite qui servirait de "carburant" à des applications externes, un peu comme CDDB... mais pour des cartes à jouer.

############# 1er PROBLEME #############

J'ai donc pour faire simple une table Extensions(id, nom, langue) avec une table Cartes reliée à Extensions via une id_extension.

Je dois sauvegarder la langue de l'extension, mais sous quelle forme ?

- Texte ? Français, Anglais, Italien,...
Je ne sais pas si c'est la meilleure façon de procéder...

- Numérique ? 0 pour Français, 1 pour Anglais, 2 pour Italien,...
Dans ce cas, il me faudrait une fonction qui manipule le résultat de mes requêtes et transforme le 0 en Français par exemple;..

En PHP, je me débrouillerais, pas de problèmes... mais je dois voir plus loin... pour des applications PC, chose que je ne maitrise absolument pas. Il me faudrait donc l'avis et le conseil de personnes expérimentés dans ce domaine wink
Est-il possible simplement de transformer mes codes numériques en leur valeurs "Français", etc... juste avant affichage dans un TreeListview par exemple ?

De mon point de vue, pour faire au plus simple, faut stocker : ID - Nom - Langue au plus simple façon : 1 - ExtensionTest - Français.
Ensuite, y a qu'à faire une requête et afficher le résultat brut de cette requête dans un élément comme un TreeListView... Mais ce n'est peut-être pas très pérenne... et niveau recherche, il serait peut-être plus facile de faire une recherche sur des valeurs numériques comme 0, 1 ou 2 que sur des valeurs texte comportant des caractères spéciaux non ?
Quelle est donc la réallité du programmeur ? Quelle option choisir ?

############# 2ème PROBLEME #############

SQLite a été choisi car il cumule plusieurs avantages :
- 1 seul fichier
- Pas besoin de serveur, contrairement à MySQL
- Libre
- Rapide
- De plus en plus exploité (AmaroK, Firefox 2.0,...)

Néanmoins, quelques questions me trottent dans la tête : J'ai lu qu'on ne pouvait plus modifer la structure de la base après création, est-ce juste ? On ne peut donc pas ajouter de tables ? de champs à une table ? Ne peut-on pas contourner cette gêne en convertissant tout en MySQL, puis en modifiant la base, et enfin en la reconvertissant en SQLite ?

Et concernant l'encodage des caractères ? ISO-8859-1 ou UTF-8 ? Bien que l'UTF-8 soit clairement le futur, est-ce une solution envisageable aujourd'hui ? Compatible avec SQLite ? L'UTF-8 serait intéressant car le base de données doit être multi-lingue et pourrait même comporter du Japonais... bien que la cible reste l'europe occidental et son alphabet...


Voilà, je vous serais vraiment reconnaissant pour toute l'aide que vous pourriez m'apporter... merci d'avance smile

Dernière modification par Bismut (Le 10/07/2006, à 16:06)


Mac Mini 2009 avec Archlinux
Asus EeePC S101 avec Archlinux
HTC Magic avec Android

Hors ligne

#2 Le 11/07/2006, à 14:11

mccricri

Re : SQLite, manière de stocker des données et fonction d'affichages...

1: En base de données, on stocke rarement le "libellé" d'un truc comme référence, surtout si tu veux faire des recherches dessus après. Le plus performant, à mon avis, c'est la recherche avec des numériques. Maintenant, il existe une liste standard avec des codes alphabétiques en 2 caractères.  Donc, pourquoi pas utiliser ça.

Le mieux, c'est de mettre une table supplémentaire qui contient juste code et libellé de langue. ça permettra de retrouver par jointure le libellé à afficher dans les TreeListview.

2: ça me parait surprenant qu'on ne puisse pas modifier une table existante, mais si c'est une limitation, on peut surement recréer la table avec les nouveaux champs, et faire une copie des données dans cette nouvelle table avant d'effacer la précédente. Et terminer par un renomage de la nouvelle. Ou presque

Maintenant, c'est très rare qu'une structure de DB évolue au cours de la vie d'un programme. Je dis pas au cours du développement, mais en cours d'utilisation par un utilisateur. Donc, c'est pas embétant pour toi développeur, mais ça ne devrait pas être utile pour les utilisateurs. Et si d'une version à l'autre de ton logiciel ça bouge, alors il faut prévoir une méthode de "migration", d'upgrade.

Pour l'encodage, je sais pas :-p
Le mieux c'est utf-8 si c'est bien intégré au langage utilisé, et tout les caractères du iso sont inclus.

juste mon avis.

Hors ligne

#3 Le 11/07/2006, à 15:20

Bismut

Re : SQLite, manière de stocker des données et fonction d'affichages...

Et bien merci beaucoup pour ton avis qui m'aiguille déjà vers une norme intéressante que je vais peut-être effectivement adopter... smile

Dernière modification par Bismut (Le 11/07/2006, à 15:21)


Mac Mini 2009 avec Archlinux
Asus EeePC S101 avec Archlinux
HTC Magic avec Android

Hors ligne