mer. 18 novembre 2015, 09h17
OlivierH
atoutfox.public.association
Re: DBC to SQLserver -- champs uniqueID
Bonjour Thierry
Pour compléter ce que dit michel :
1- j'ai utilisé l'upsizing de michel, il corrige des bugs que sedna ne
gère pas, ca fait longtemps mais je crois de mémoire les varchar(max) et
autre correspondances de champs. Donc il est plus sur et en plus tu as
accès aux sources.
2- L'uniqueIdentifier est utilisé dans le cadre ou tu as plusieurs App
différentes qui utilise la même base. C'est sous le format d'un Guid et
non de 10car, cela t'assure plus de securité sur l'unicité de la ligne.
Par exemple si tu as une app smartphone android ou ios qui discute en
RestApi avec ton sqlserver, et que cess app sont dites deconnecté et que
tu synchronises ta base avec une base local cela peut être utile.
Sinon int ou bigint suffit à la plupart des besoins.
https://msdn.microsoft.com/fr-fr/library/ms187942%28v=sql.120%29.aspxhttp://stackoverflow.com/questions/1151625/int-vs-unique-identifier-for-id-field-in-databaseps : dans mon appli fox : j'avais des clés en char sur 12 car, j'ai mis
en place les int dans mes tables, afin de garder les deux mecanismes
pour une retro compatibilité avec mon appli lan fox.
Mais sur sqlserveur tous les id sont en clé primaire, ainsi que les
tables etrangère en int, cela sert juste à l'appli fox en lan pour
rechercher ses petits.
J’espère d'avoir aidé à choisir la bonne solution.
Olivier,
Le 17/11/2015 21:09, Michel L?vy a écrit :
> Bonsoir Thierry,
>
> quelques pistes:
>
> 1) j'ai traduit et corrigé l'upsizing wizard il y a 7 ans de ça, tu ferais mieux de traiter ton besoin spécifique dans le code source disponible sur CodePlex (
http://vfpx.codeplex.com/downloads/get/59511)
>
> 2) du point de vue du moteur de SQL server, les clés primaires en uniqueidentiifer sont toujours moins performantes que celles en entiers autoincrémentés (c'est du à la structure physique des index clustered)
>
> 3) si toutefois tu veux absolument cette transposition, alors regarde ce que tu peux faire avec la table typemap.dbf qui est incluse dans l'upsizing wizard. Mais je pense que tu n'as rien à y gagner par rapport à tes C(10). tu peux parfaitement choisir d'avoir des clés primaires attribuées par l'application cliente, et conserver ton attribution de sys(2015)
>
> 4) en SQL, les clés primaires sont des définitions structurelles, et l'upsizing wizard peut te générer ce DDL. Attention à bien préciser que tu veux une RI déclarative (structurelle), et non pas procédurale (dans les triggers, beaucoup plus lent et générateur potentiel de deadlocks)
>
>
>
>
Permalink : http://www.atoutfox.org/nntp.asp?ID=0000016884