NHibernate dateTime как идентификатор Плохая идея? - PullRequest
2 голосов
/ 30 марта 2010

У меня есть сущность, и кажется, что использовать DateTime в качестве идентификатора было бы неплохо, однако у меня возникает странное чувство, что это может быть ужасной идеей (хотя я не могу придумать какой-либо логической причины, почему )

Это неизменный объект (т. Е. После того, как значение записано, оно не должно измениться) Так DateTime как поле идентификатора в NHibernate Yay или Nay? Буду признателен за ваши комментарии к этому

Ответы [ 3 ]

3 голосов
/ 30 марта 2010

Плохая идея. Никогда, никогда не имейте уникальный идентификатор, чтобы иметь какое-то значение, потому что значение может измениться, может измениться и какое-то другое ограничение на значение, и идентификатор должен быть именно этим, идентификатор.

Если вам нужно, вы можете поместить уникальный индекс в поле datetime и использовать его в запросах, но сохраняйте id как guid или autinc.

2 голосов
/ 30 марта 2010

Очень плохая идея. Он может быть не уникальным, он имеет много значений (+/- GMT) и т. Д. Вместо этого используйте столбец Identity и сохраняйте дату и время в отдельном столбце.

2 голосов
/ 30 марта 2010

Очень плохая идея. Что делать, если у вас есть дубликаты? У вас нет возможности гарантировать уникальность поля. Вы, вероятно, не получите два объекта, созданных одновременно, но это не гарантировано. Однако с автоматическим приращением или GUID вы знаете, что база данных позаботится о том, чтобы ее ключи были согласованными.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...