Envoyé par
unBonGars
j'ai lu ce topic avec intéret, je vois que je ne suis pas le seul à avair adopté sqlite. Auparavant , j'utilisais Access qui fait bien d'autres choses que de stocker des données. SQLite donne un nouveau souffle à ceux qui ont acquis un savoir faire sous access avec une architecture voisine et une tenue en charge nettement meilleure. Bien sûr la comparaison s'arrète là , sqlite n'est pas un outil bureautique, ni même un sgbd mais plutôt un "datafile replacement" comme le dit son papa R. Hipp.
Selon la presse il est le plus installé au monde avec un portfolio impressionnant, il est aussi l'organe vital de Symbian et utilisé dans l'os de l'IPhone. Ca en fait un outil assez unique en son genre , le comparer à d'autres est une erreur même si la portabilité vers un SGBDR est bonne merci SQL, ça se complique sérieusement si on regarde l'aspect connexion. Si un programme est déjà très volumineux, la stratégie de connexion sera sans doute à refaire pour passer de SQLite à autre chose.
Pour le thème de ce topic, La gestion des clés étrangères, c'est le delete cascade, ou au moins la remontée d'un message en cas de destruction de ligne parente. Ca pose un tas de questions connexes : comment remonter les erreur de l'engine, faut il les récupérer dans une exception, les retourner à l'utilisateur brutes de fonderie ?
Sous ado.net sqlite retourne des mlessages laconiques mais très clairs et sous débugger , ça aide beaucoup. Mais l'utilisateur du programme n'a pas de débugger (?) donc il faut bien savoir ce qu'on fait des messages remontés. Bref, je ne me servirai pas tout de suite de cette fonction mais je salue son existence et quand j'aurai redessiné mes schemas pour poser les contraintes ad hoc, je verrai bien ce que je peux faire des messages correspondants. Il est clair qu'on s'en sortait très bien sans jusqu'ici. Mais celui qui aura réellement testé les contraintes FK ou celui qui rame avec des triggers pour faire de même saura sans doute mieux de quoi il retourne pour autant qu'il ait le courage de remplacer ses triggers par un redesign du schema : gros travail à priori..
Partager