Comment choisir entre les Uuid, auto-incrémentation/clés de séquence et la séquence des tables de la base de données de clés primaires?

Je suis en train de regarder les avantages et les inconvénients de chacune de ces trois principales méthodes de venir avec des clés primaires pour les lignes de la base de données.

Donc, en supposant que je suis en utilisant une base de données qui prend en charge plus d'une de ces méthodes, est-il une simple heuristique pour déterminer quelle est la meilleure option pour moi?

Comment faire des considérations telles distribuée/plusieurs maîtres, les exigences de performance, ORM utilisation, de sécurité et des tests sur le choix?

Inattendu inconvénients que l'on peut exécuter en?

  • ce type de langage / orm fournisseur utilisez-vous?
  • Java. Soit en veille prolongée ou Eclipselink. Si je suis vraiment à la recherche surtout pour les plus génériques de points que de leurs avantages et inconvénients.
  • La langue ou de la méthode d'accès ne devrait pas avoir d'incidence sur la clé primaire. La clé primaire sera uniquly identifier l'objet, d'une entité, d'une personne, ect. Si la clé primaire est large, navrchar(25) pour moi, puis utiliser un nombre entier suppléant comme une colonne d'identité. pensez aux données qui seront stockées et le modèle de stockage pour les données afin de fournir les meilleurs OLAP, de la vitesse des transactions, ou de rapports de vitesse on a besoin.
  • J'ai utilisé plus d'un "puriste", même en utilisant le composé PKs. Maintenant, j'ai vue le PK interne à la base de données (par exemple, un auto-int séquence est fine GUID est exagéré la plupart des cas) et d'imposer la relation exigences uniques séparées index -- cependant, ce n'est que le "bon PK" (ce qui serait le PK si il n'y a pas d'auto-colonne) qui, je crois, doit être transmis entre les systèmes, de quoi que ce soit. Pourtant, contrairement à certains, je ne considère pas cela comme un "absolu" de la règle et de l'accepter (en fait, tout à fait profiter) les différentes dynamiques à l'œuvre dans les différentes bases de données. J'ai également faveur immuable enregistrements.
  • oui il a quelque chose à faire avec elle... Le débat sur l'identité de l'objet dans l'ORM monde est longue.
  • Je pense qu'il y a aussi quelques cas d'utilisation lors de l'utilisation d'un ORM qui pourrait entraîner des avantages/inconvénients des différentes options, mais je peux me tromper.

InformationsquelleAutor Tim | 2011-01-10