- 1
- 2
- 3
- 4
- 5
- 6
- 7
$h_month = date("m");
$h_day = date("d");
$h_year = date("Y");
$h_hour = date("H");
$h_minute = date("i");
$history = mysql_query("insert into history values('','$h_month','$h_day','$h_year','$h_hour','$h_minute','$total_open','$beat','$wins','$tie','$can_change_up','$can_change_down','$cannot_win','$t_adjusted_gain','$t_adjusted_loss','$t_dollar_amount')");
guest 13.03.2009 21:33 # 0
Я тоже так раньше делал)))
guest 14.03.2009 18:08 # +1
судя по названию таблицы - это статистика по данным - а значит хранить дату в таком виде не только можно, но и нужно - а вот теперь подумайка, недоумник, какой запрос отработает быстрее:
или
ps задолбали ламеры....
guest 16.03.2009 13:13 # +2
да ты лошара))
а как нащщщщёт записей за последнюю неделю месяца, или фиксированный интервал дат(чч/мм/гггг ЧЧ:ММ:СС) и прочая??
кстати, а что бы изменилось в твоих рассуждениях, если бы таблица называлась transactions, orders, actors или students?
и нахрена ваще типы полей Date и Datestamp, если "вариаций множество", давайте ваще всё хранить в полях типа VARCHAR, нахрена проблемы ;)
ps задолбали тролли
guest6 25.08.2023 00:59 # +1
ropuJIJIa 25.08.2023 01:07 # 0
https://dev.mysql.com/doc/refman/8.0/en/date-and-time-types.html
Но вместо TIMESTAMP иногда лучше хранить целого питуха.
guest6 25.08.2023 01:09 # +1
Как всегда ламерье не умеет в собственные инструменты?
ropuJIJIa 25.08.2023 01:15 # 0
Кстати, кто-нибудь проверял?
guest6 25.08.2023 01:22 # 0
Если это OLTP СУБД, то конечно она должна быть нормализованной, и покажите мне тот проект, где боттлнек будет в выборе года.
Если это OLAP, то ее можно денормализовать. Но даже там дату не нужно разбивать на отдельные поля.
Но vic это типичный анскиллябрнуый безвузный пыхомакак.
Он не владеет терминологией (я с трудом понял, что "статистика" это OLAP).
Он считает, что без всяких пруфов таблицу нужно денормализовать.
Ну и вот еще кукаречет https://govnokod.xyz/_696/#comment-4799
ropuJIJIa 25.08.2023 01:21 # 0
Не представляю, как искать, когда компоненты даты/времени в отдельных колонках.
guest6 25.08.2023 01:23 # +1
Зачем решать через жопу?
guest 16.03.2009 14:08 # −1
да сам ты лошара)
этот способ позволяет сделать уникальный ключ на часы+минуты!
так что код совсем не говно если действительно нужны компоненты даты в базе
guest 16.03.2009 15:08 # +2
[quote=скор]а на `year` у нас наложен индекс[/quote]
Да уж, офиггено эффективный индекс. Хотя если проект на пару сотен лет хотябы расчитан.. почему бы и нет?
на дату индекс будет один единственный и максимально эффективный. А если держать индексы по всем компонентам даты это неоправдано увеличит объем базы а также сильно увеличит временный затраты на вставку, что в истории гораздо важнее чем затраты на выборку
guest 17.03.2009 10:57 # −3
охуенно эффективный индекс, невьебаться, по рейнджу - мозг активируй - я посмотрю сколько у тебя такая таблица будет архивироваться.
guest 17.03.2009 11:00 # −2
[quote]а как нащщщщёт записей за последнюю неделю месяца, или фиксированный интервал дат(чч/мм/гггг ЧЧ:ММ:СС) и прочая??[/quote]
а что мешает держать еще интовый таймстамп?
ps Заебали толькопослеуниверситетские лохи, которые кроме нормализированых баз ни о чем не знают - практикуй побольше - и системы станет быстрее.
guest 17.03.2009 14:42 # +5
сплошная болтовня, где аргументы, реальные тесты?
Я вижу только картину такого рода:
в таблице 'users' имеются поля 'created_at', 'updated_at', 'deleted_at', 'logged_at' - все даты в формате datetime. Значит по-пацански - это разбить их на 4*6=24 поля? Валяйте.
guest 18.03.2009 22:43 # +3
[quote=vic]а что мешает держать еще интовый таймстамп[/quote]
а чт мешает хранить только таймстамп?? (без этих 6 полей). Или дату в формате DATETIME. Опять же без этих 6 интовых полей. ну и, как правильно сказал cheef, фпирёд разбивать поля created_at etc на 6 интовых, и индексы не забудьте.
p.s. надоели годадвапослеуниверситетские люди, воображающие что знают всё. практикуйте побольше - код будет читабельнее и системы мастабируемее.
guest 19.03.2009 15:18 # +1
У каждого есть право написать свой неповторимый извратный код)
guest 26.03.2009 19:57 # 0
guest 24.04.2009 01:50 # 0
guest 29.07.2009 14:49 # 0
с использованием таймстемпа это будет выглядеть так
преимущества:
- занимает в разы меньше места в базе
- четабельность кода несомненна
- скорость тоже не страдает
- даные не зависят от формата даты выводимой на экран
- дата содержит шерокий спектор данные(например часовой пояс)
guest 08.09.2009 16:05 # 0
mysql_query("SELECT * FROM `history` WHERE `date` BETWEEN ".mktime(0,0,0,0,0,$year)." AND ".mktime(0,0,0,0,0,$year+1));
Читабельность кода еще больше увеличится.
guest 29.07.2009 14:55 # 0
забыл сказать об недостатках таймстемпа:
- только преобразовав таймстемп в человеческую дату можно узнать что в нем хранится
- таймстемп начинает отсчет от January 1 1970 00:00:00 GMT. для дат более реннего периуда необходимо использовать другой формат хранения данных
guest 08.09.2009 16:02 # 0