Вниз  MySQL и мелкие вопросы
- 18.01.2014 / 00:10
aNNiMON
  Супервизор

aNNiMON 
Сейчас: Offline
Dinisimys, да, но это не суть важно.

Ладно, начнём сначала.
Есть такая структура таблиц. Поля user_id, exer_id и date присутствуют во всех четырёх, что говорит об избыточности. Да и неудобно работать отдельно с четырьмя таблицами.
Я хочу вынести общие поля в отдельную таблицу stat и связать с таблицей (теперь уже одной) stat_values. Было 4 таблицы, станет две, ок?
Только тут беда в том, что связь получится 1 к 1, что говорит о том, что у меня кривые руки.
Может как-то можно по-другому сделать?
__________________
 let live

Изменено aNNiMON (18.01 / 00:15) (всего 3 раза)
- 18.01.2014 / 00:26
Dinisimys
  Пользователь

Dinisimys 
Сейчас: Offline
aNNiMON, можешь уточнить задачу. Конкретно на примере, как должно работать. Что должно происходить?
На примере с четырьма таблицами.
- 18.01.2014 / 00:26
aNNiMON
  Супервизор

aNNiMON 
Сейчас: Offline
Хм, посидел, подумал. А что, если таблица будет вот такая:
  1. `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  2. `user_id` int(11) unsigned NOT NULL,
  3. `exer_id` int(11) unsigned NOT NULL,
  4. `total` int(11) DEFAULT NULL,
  5. `weight` int(4) DEFAULT NULL,
  6. `time` int(8) unsigned DEFAULT NULL,
  7. `date` date NOT NULL,
То есть в одной записи может быть несколько полей с NULL'ами.
  1. id user exer total wght time date
  2. 1  1  2  1000 NULL NULL  2013-10-11
  3. 2  1  2  NULL NULL 0020  2013-10-12
  4. 3  1  9  5000 NULL 0040  2013-12-16
  5. 4  1  2  0100 0005 NULL  2013-12-16
Наличие нулов не сильно навредит?
__________________
 let live

Изменено aNNiMON (18.01 / 00:28) (всего 1 раз)
- 18.01.2014 / 00:31
Dinisimys
  Пользователь

Dinisimys 
Сейчас: Offline
aNNiMON, ничем не повредит, насколько я знаю. Почему у поля date тип date? Лучше timestamp, а уже через php можно делать что захочешь с этим временем, в том числе и перевести в простую дату.
- 18.01.2014 / 00:35
aNNiMON
  Супервизор

aNNiMON 
Сейчас: Offline
Dinisimys, зачем мне хранить время и дату, если мне нужна только дата. К тому же там хитрая система, когда добавляется новая запись с датой, которая уже была в списке, то значение складывается и обновляется, а не добавляется новое. С timestamp этого у меня не получилось бы.
Ладно, спасибо за помощь, попробую пока так.
__________________
 let live
- 18.01.2014 / 00:38
Dinisimys
  Пользователь

Dinisimys 
Сейчас: Offline
aNNiMON, всмысле, если запись в базу данных происходит в один и тот же день, тогда суммируется значения для этого юзера, да? И система сделана посредтсвом чего? mysql или php?
- 18.01.2014 / 00:49
aNNiMON
  Супервизор

aNNiMON 
Сейчас: Offline
Dinisimys, да. Конкретно - статистика спортивных тренировок. Ты утром встал, отжался 40 раз, в БД записало:
user: 1, total: 40, exer: 1 (отжимания), date: 2014-01-18
Потом вечером ещё 100 раз сделал, в БД уже будет:
user: 1, total: 140, exer: 1 (отжимания), date: 2014-01-18
__________________
 let live
- 18.01.2014 / 00:51
Dinisimys
  Пользователь

Dinisimys 
Сейчас: Offline
aNNiMON, ну а саму хитрую систему ты на мускуле или пхп делал? Потому что, если на последнем, то таймстамп подойдет, а если на первом, тогда незнаю.
- 18.01.2014 / 00:55
aNNiMON
  Супервизор

aNNiMON 
Сейчас: Offline
Dinisimys, на PHP. Но мне не нужен timestamp, лишнее хранить не хочу.
__________________
 let live
- 18.01.2014 / 00:59
Dinisimys
  Пользователь

Dinisimys 
Сейчас: Offline
aNNiMON, а вдруг тебе понадобится посчитать, ну например, количество дней от текущей дату, до какой-то другой даты. Это например. С таймстампом это можно сделать одним выражением, а с датой надо поиграться немного. Тем более лишнего ты не будешь хранить, ведь это 11 чисел, а в дате - десять символов.
И почему ты решил, что на тайстампе решить твою задачу нельзя с "одним днем"? Очень просто даже

Изменено Dinisimys (18.01 / 01:00) (всего 1 раз)
Наверх  Всего сообщений: 750
Фильтровать сообщения
Поиск по теме
Файлы топика (22)