Zzepish
22.12.2013 - 19:49
И так, господа.
Пилю я голосовалку (сервис голосования)
Такая дилема: при редактировании нужно апдейтить поля (если они не удалены), или добавлять новые (если добавляются новые, само-собой).
Я подумал и решил: проще удалить ВСЕ поля при сохранении, и перезаписать (в том числе и старые).
Таблицы такие:
Zzepish
22.12.2013 - 20:46
up
Valick
22.12.2013 - 21:34
Zzepish, вот ты вот щас чё спросил?
_____________
Стимулятор ~yoomoney - 41001303250491
Каждый раз удалять - плохая идея.
curious
22.12.2013 - 23:32
таблица 1
question_id - id
title - вопрос
is_deleted - стутус(удален, нет)
таблица 2
answer_id - id овтета
question_id - id вопроса
title - ответ
is_deleted - стутус(удален, нет)
is_deleted - не обязателен
если я понял о чем речь
curious
22.12.2013 - 23:34
перечитал) походу не понял.
sergeiss
22.12.2013 - 23:49
Цитата (Zzepish @ 22.12.2013 - 19:49) |
Такая дилема: при редактировании нужно апдейтить поля (если они не удалены), или добавлять новые (если добавляются новые, само-собой). Я подумал и решил: проще удалить ВСЕ поля при сохранении, и перезаписать (в том числе и старые). |
Удалить поля или перезаписать значения в полях???
_____________
*
Хэлп по PHP*
Описалово по JavaScript *
Хэлп и СУБД для PostgreSQL*
Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги. *
"накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)
Zzepish
23.12.2013 - 01:09
Valick
есть две таблицы!
В одной: инфрмация о вопросе: сам вопрос, его название, его id и автор.
Во второй: id, id_вопроса, вариант вопроса.
Так вот: когда юзер захочет отредактировать голосование- придется или перезаписывать, или удалять записи, а потом вписывать их как новые.
Как при такой архитектуре перезаписать в одном запросе- не представляю (с учетом того, что должна идти проверка на юзера)
Zzepish
23.12.2013 - 01:10
Эх, мне еще учится и учится высказывать свою мысль(((
sergeiss
23.12.2013 - 01:17
Цитата (Zzepish @ 23.12.2013 - 01:09) |
Как при такой архитектуре перезаписать в одном запросе- не представляю (с учетом того, что должна идти проверка на юзера) |
Так а в чем проблема-то? И при чем тут "проверка на юзера"? Если ты хочешь что-то обновить, то указываешь в WHERE некие параметры, характеризующие нужную запись. Вот скажи: при вставке ты какие параметры указываешь?
Цитата (Zzepish @ 23.12.2013 - 01:10) |
мне еще учится и учится... |
Учит
ься и учит
ься
Если захочешь - научишься. Надо просто научиться абстрагироваться от того, что ты знаешь что-то по этому вопросу и попробовать глянуть на вопрос глазами человека, который не знает то, что знаешь ты.
_____________
*
Хэлп по PHP*
Описалово по JavaScript *
Хэлп и СУБД для PostgreSQL*
Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги. *
"накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)
Zzepish
23.12.2013 - 01:30
sergeiss
Смотри: в первой таблице указывается автор. Во второй таблице указывается id самого опроса (voting_id). Т.е. при перезаписи нужно будет проверять: является ли текущий юзер автором этого варианта ответа. Если да- перезаписывать. Сложность в том, что автор записан в одной таблице, а варианты ответа в другой
Magistr
23.12.2013 - 01:56
Zzepish
Хм какое совпадение я тоже юзаю опросы с нуля.
Зачем разделять автора опроса с id опроса и вариант ответа?
Запешы все в одну таблицу, попроще будет переверять.
У меня например id, автор, тема, варианты ответа, количество ответов по номеру ответа все в одной таблице.
Но если из за етих изменений многа кота прийдется перелопатить нада думать над другим вариантом...
Valick
23.12.2013 - 10:34
Цитата |
Во второй: id, id_вопроса, вариант вопроса. |
ты хотел сказать вариант ответа, сам вопрос должен быть в первой таблице
структура БД правильная
Цитата |
Так вот: когда юзер захочет отредактировать голосование- придется или перезаписывать, или удалять записи, а потом вписывать их как новые. |
Зачем? Тут обычный UPDATE ну или INSERT если необходимо добавить еще один (ну или пару миллионов) вариант ответа. У тебя есть id вопроса (причем в обеих таблицах, по этому полю они и связаны), по нему можно узнать автора и предоставить права на редактирование.
Просто редактирование вопроса и его описания, ну и удаление, это одна задача. А редактирование ответов их добавление и удаление, это другая задача. Даже если ты одновременно Хочешь отредактировать вопрос и ответы, это разные запросы к БД.
Может ты и загнался тем, что хочешь их объединить?
_____________
Стимулятор ~yoomoney - 41001303250491
Zzepish
23.12.2013 - 14:48
Цитата |
ты хотел сказать вариант ответа, сам вопрос должен быть в первой таблице
|
Именно.
Цитата |
Зачем? Тут обычный UPDATE ну или INSERT если необходимо добавить еще один (ну или пару миллионов) вариант ответа. У тебя есть id вопроса (причем в обеих таблицах, по этому полю они и связаны), по нему можно узнать автора и предоставить права на редактирование. Просто редактирование вопроса и его описания, ну и удаление, это одна задача. А редактирование ответов их добавление и удаление, это другая задача. Даже если ты одновременно Хочешь отредактировать вопрос и ответы, это разные запросы к БД. Может ты и загнался тем, что хочешь их объединить? |
Понимаешь в чем беда: я могу запилить через 2 запроса без проблем. Но хотелось бы одним. Это возможно?
glock18
23.12.2013 - 15:01
Можно одним. Ключик, правда, может дополнительный потребоваться.
EDIT: ан-нет, нельзя
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.