2010-03-30 8 views
2

J'ai une entité et il semble que l'utilisation de DateTime comme un Id serait un bon costume, mais il y a ce sentiment étrange que ce pourrait être une idée terrible (je ne peux pas trouver de raison logique). Ceci est un objet immuable (c'est-à-dire une fois que la valeur est enregistrée, elle ne devrait pas vraiment changer) Donc DateTime en tant que champ id dans NHibernate yay ou Nay? J'apprécierais vos commentaires sur ceNHibernate dateTime comme ID Mauvaise idée?

+1

Avez-vous déjà essayé de construire un horodatage exact pour simplement récupérer un objet à partir du dB? Gros mal de tête! –

+0

Je suppose que vous avez! – Joe

+0

putain vous tous m'a donné de bonnes raisons, comment puis-je accepter une réponse ??? :) peut-être Dev er dev car il y a de bonnes raisons et des conseils pratiques aussi, merci beaucoup – roundcrisis

Répondre

3

Mauvaise idée. Jamais, jamais avoir un identifiant unique pour avoir un sens, le sens de la signification peut changer, d'autres contraintes sur la signification peuvent aussi changer, et id doit être juste cela, un identifiant.

Si vous le devez, vous pouvez mettre un index unique sur le champ datetime et l'utiliser dans les requêtes, mais garder id comme guid ou autinc.

2

Très mauvaise idée. Et si vous avez des doublons? Vous n'avez aucun moyen de garantir l'unicité du domaine. Vous n'obtiendrez probablement pas deux objets créés en même temps, mais ce n'est pas garanti. Avec un auto-incrémentation ou GUID, cependant, vous savez que la base de données prendra soin de garder ses clés cohérentes.

2

Très mauvaise idée. Il peut ne pas être unique, il a beaucoup de significations (+/- GMT) ect. Utilisez plutôt la colonne Identité et stockez datetime dans une colonne séparée.

Questions connexes