За последние 24 часа нас посетили 17636 программистов и 1655 роботов. Сейчас ищут 937 программистов ...

Помогите с логикой в MySQL

Тема в разделе "PHP для новичков", создана пользователем sumsum, 22 май 2014.

  1. sumsum

    sumsum Новичок

    С нами с:
    13 май 2014
    Сообщения:
    96
    Симпатии:
    0
    Нужно вывести оплаченные новости. Скажем человек платит какую то сумму и его новость размещается на 1 день на главной странице сайта. Итак нам нужно создать таблицу
    CREATE TABLE `news` (
    `news_id` int(11) NOT NULL AUTO_INCREMENT,
    `news_title` varchar(255) NOT NULL,
    `news_text` text NOT NULL,
    `news_pic` varchar(20) NOT NULL,
    `news_data` int(11) NOT NULL,
    PRIMARY KEY (`news_id`)
    )

    Вопрос в поле `news_data` int(11) сюда лучше заносить критическую дату до каких пор новость показывается или же дату публикации новости а в таблице добавить еще одно поле где записывать на какой срок?

    И по типу данных как лучше дату хранить в числовом виде или же в типе date? С чем легче оперировать?
     
  2. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    listen to your heart.

    Тут тоже на вкус и цвет. Я люблю секунды. Кто-то хранит в дате. Это такие вещи, где нет правильного и неправильного ответа. Сам гляди, что удобнее, то и юзай.
     
  3. Chushkin

    Chushkin Активный пользователь

    С нами с:
    17 дек 2010
    Сообщения:
    1.062
    Симпатии:
    91
    Адрес:
    Мещёра, Центр, Болото N3
    1) date это тоже число. Удобно тем, что движок автоматом форматирует в дату при чтении и деформатирует при записи. Кроме того, есть куча функций для оперирования с датой/временем.
    п.с. Нужно учитывать: если временная зона может измениться когда-нибудь, то надо юзать timestamp. Ну или ручками всегда конвертировать в UTC и обратно.
    2) Правильно - три поля: время добавления записи, время начала акции (если не отличается от добавления, то достаточно два поля) и время "ДО" или длительность действия акции (дискретность по желанию).