Самый эффективный метод хранения данных в базе данных? - PullRequest
3 голосов
/ 09 марта 2011

Итак, я хочу сохранить дату в моей базе данных SQL и не уверен, что будет наиболее эффективным способом. Я думал о двух разных методах.

Во-первых, люди смогут устанавливать определенную цену на каждый день.

Например:

8 марта 2011 года: 1

9 марта 2011 г .: $ 2

10 марта 2011 года: 5 * 1012 $

Для моей базы данных я думал либо о сохранении метки времени UNIX, либо о сохранении месяца, дня и года в отдельных полях.

Первый метод:

метка времени UNIX

Плюсы

  • только одно поле

Против

  • Необходимо преобразовать дату в метку времени
  • Пришлось искать даты начала и окончания
  • Склонны к ошибкам в поиске

Месяц / день / год

Плюсы

  • Легче искать

Против

  • Дополнительные поля
  • Занимает больше места
  • Будет хранить много данных, что может замедлить работу базы данных.

С вышеуказанной информацией, что бы вы посоветовали? (Я могу уточнить, если что-то из этого не ясно.)

Ответы [ 3 ]

9 голосов
/ 09 марта 2011

поля timestamp / datetime / date более эффективны (все они хранятся как целые числа).
Таким образом, поиск будет намного быстрее.
Есть небольшие (очень) накладные расходы на конвертацию между различными форматами даты, но, если вы не присоединитесь к полям даты (что ... обычно ... не умно), у вас нет проблем, это произойдет только один раз.
Я не вижу, как это подвержено ошибкам.

4 голосов
/ 09 марта 2011

Используйте поле DATE, вот для чего они.

2 голосов
/ 09 марта 2011

Вы можете использовать тип столбца DATETIME или DATE - простой поиск и всего один столбец, а также простой поиск в диапазоне дат ...

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