|
|
|
| Все время держал дату в формате DATETIME. Но постоянно приходилось ее конвертить в метку времени (timestamp) а потом к тому виду, который хочется.
Вчера посмотрел в каком формате держат дату разработчики продуктов phpBB, osCommerce и echoArticles. Они все держат время в поле типа INT!
Вот и думаю. Не с балды же ведь разработчики БД реализовали типы данных даты и времени. Так почему многие держат в INT?
Я понимаю что это личный выбор каждого разработчика, в каком формате держать дату. Вот и прошу высказаться по этому поводу. (в поиске был)
Прошу высказаться кто в каком формате держит дату в БД и аргументировать свой выбор. | |
|
|
|
|
|
|
|
для: Mosik
(06.07.2006 в 11:33)
| | >Все время держал дату в формате DATETIME. Но постоянно приходилось ее конвертить в метку
>времени (timestamp) а потом к тому виду, который хочется.
А зачем? Есть замечательная функция MySQL - DATE_FORMAT() при помощи которой можно получить дату в любом формате. | |
|
|
|
|
|
|
|
для: Mosik
(06.07.2006 в 11:33)
| | Если вносить дату в БД,то лучше и правда INT,меньше места,а timestamp в самой базе используют для регистрации внесения-изменения записи,другими не пользуюсь почти. | |
|
|
|
|
|
|
|
для: Mosik
(06.07.2006 в 11:33)
| | Они держат её в int, поскольку ориентируются не только на MySQL, но и на другие серверы, и соответственно - диалекты языка SQL. Поскольку представление календарных даных и наборы работающих с этими данными функций у всех диалектов отличаются, а INT - он везде INT, писать с ним переносимый SQL-код куда проще.
Опять же, если учесть, что на серверной стороне всё равно приходится иметь дело с нормализованным временем, int всяко предпочтительней.
Ну а администрировать такую базу, соответственно, сложнее - приходится в SELECTах FROM_UNIXTIME писать каждый раз.
Выбор за Вами. | |
|
|
|
|
|
|
|
для: Mosik
(06.07.2006 в 11:33)
| | Почитал вчера комментарии тут и на других форумах и почти согласился с мыслью что буду держать дату в DATETIME.
А потом меня посетила следующая мысль:
У меня есть класс, который отвечает за работу с таблицей статей (продуктов, сайтов, нет значения чего...). В нем есть метод getItem, который возвращает массив с данными статьи. Везде в коде проэкта я вызываю данный метод объекта для получения элемента. Зачем думаю объяснять не стоит.
Так вот, в разных местах проэкта мне может понадобиться дата в разных форматах. И использовать функции mySQL тут уже не получится так как запрос к БД идет в методе getItem, который для всего проэкта один.
Получается что в данном случае целесообразней дату хранить как INT и средствами PHP ее конвертить в любой формат?
Какие будут мысли по этому поводу?
-----------
работаю на форумом Орифлейм | |
|
|
|
|
|
|
|
для: Mosik
(07.07.2006 в 14:21)
| | Да, в таком случае целесообразнее хранить дату в INT. Или при выборке преобразовывать её из DATETIME при помощи функции UNIX_TIMESTAMP(). | |
|
|
|