Вниз  MySQL и мелкие вопросы
- 23.11.2013 / 16:33
aNNiMON
  Супервизор

aNNiMON 
Сейчас: Offline
В БД есть поле `time` типа TIME, хранит продолжительность вида '01:20:00', как конвертировать все строки в int(10) ? Создал `time_int`, а как обновить в нём значение в соответствии со значением поля `time`?
__________________
 let live
- 23.11.2013 / 16:40
aNNiMON
  Супервизор

aNNiMON 
Сейчас: Offline
Всё, решил
  1. UPDATE `stat_distance_time` SET `time_int`=HOUR(`time`)*3600 + MINUTE(`time`)*60 + SECOND(`time`)

__________________
 let live
- 17.01.2014 / 22:24
aNNiMON
  Супервизор

aNNiMON 
Сейчас: Offline
У меня было 4 таблицы с общими данными user_id, exer_id и датой.
(stat_count_weight): id, user_id, exer_id, total, weight, date

Я вынес эти данные в таблицу:
(stat): id, user_id, exer_id, stat_id, date
 
А в другой таблице храню сами данные:
(stat_values): id, total, weight

Но не могу разобраться с внешними ключами. Мне нужно, чтобы при удалении записи в stat удалялись записи в stat_values, но что-то ничего не получается. Что не так?
  1. ALTER TABLE `stat`
  2.   ADD FOREIGN KEY (`stat_id`) REFERENCES `stat_values` (`id`) ON DELETE CASCADE ON UPDATE CASCADE

__________________
 let live
- 17.01.2014 / 22:47
Bogdan-G
  Пользователь

Bogdan-G 
Сейчас: Offline
aNNiMON, нас учили юзать нормальные формы и связывать по общим критериям таблицы. Попробуй логически представить как оно должно работать. Какие записи удаляются? Они одни и те же или разные?
:ps: Тут судя по всему с условием пройтись по таблице, и удалить.
Внешние ключи date и weight. Т.е. связь такая - см. рис.
:ps::ps://кэп вкл/*Кстати твой пост в теме под номером 443 и его особенность в том что это дефолтный порт в https и этим пост оригинален :gg: */кэп выкл//

Изменено Bogdan-G (17.01 / 22:54) (всего 6 раз)


Прикрепленные файлы:
Безымянный.jpg (14.01 кб.) Скачано 465 раз
- 17.01.2014 / 23:23
aNNiMON
  Супервизор

aNNiMON 
Сейчас: Offline
Bogdan-G, есть юзеры, у них есть записи в stat, которые в свою очередь связаны со stat_values. Я удаляю юзера, удаляются все его данные, что тут ещё представлять? Таблицы и так в нормальных формах, о чём свидетельствуют поля с айдишниками.
Кэп из тебя стопроцентный :gg:
__________________
 let live
- 17.01.2014 / 23:27
Bogdan-G
  Пользователь

Bogdan-G 
Сейчас: Offline
aNNiMON, какой запрос за это отвечает я не помню :hack: , зато хорошо представил в виде связки if+for как это сделать. Там еще есть функция обновления,добавления,удаления.
- 17.01.2014 / 23:33
Dinisimys
  Пользователь

Dinisimys 
Сейчас: Offline
aNNiMON, а нельзя сделать два delete...where `user_id`= id для таблиц?
- 17.01.2014 / 23:34
Bogdan-G
  Пользователь

Bogdan-G 
Сейчас: Offline
Dinisimys, там 3 может быть удаления и не должно быть аномалии удаления.
- 17.01.2014 / 23:43
aNNiMON
  Супервизор

aNNiMON 
Сейчас: Offline
Я наверное что-то не понимаю, когда я в stat добавляю внешний ключ, то получается не при удалении записи из stat удаляются записи в stat_values, а наоборот, при удалении из stat_values удаляются записи в stat.
Но если добавлять внешний ключ в stat_values, то всё удаляется так, как я хочу, но при этом я не смогу добавлять нормально данные. Я совсем запутался с этими ключами :plushit:

Dinisimys, нет, если БД умеет удалять автоматически, почему это должен делать я вручную?
__________________
 let live

Изменено aNNiMON (17.01 / 23:45) (всего 4 раза)
- 17.01.2014 / 23:54
Dinisimys
  Пользователь

Dinisimys 
Сейчас: Offline
aNNiMON, ты это делаешь в связке с php?
Наверх  Всего сообщений: 750
Фильтровать сообщения
Поиск по теме
Файлы топика (22)