Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вставка данных в БД, непредвиденная ошибка сервера БД 
V
    Опции темы
patap
Дата 19.7.2011, 10:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 893
Регистрация: 7.5.2005
Где: Украина, Зп

Репутация: 26
Всего: 40



Всем привет

Возник вопрос. 
При вставке данных нужно вставить данные пользователя в несколько талиц. Т.е. к примеру: 
вставляем общую инфу по юзеру, и потом данные в пару связных таблиц.

Получается будет три последовательных запроса INSERT. В итого должны получить целостную, связанную между собой информацию.

Так вот вопрос: стоит ли последовательно отслеживать результат каждого запроса, и при неудаче какого-то из них, удалять все вставленные записи (выполнение предыдущих запросов) и выводить юзеру сообщение, мол попробуйте еще раз? 
К примеру, если в друг произойдет на втором или третьем запросе, какой-то сбой* - в итоге получим не то что ожидали..

В принципе, всегда просто вставлял данные и бед не знал. Стоит ли заморачиваться по этому поводу, или это надуманная пробема? 

*Сбой - я имею ввиду, системный какой-нибудь, а не недостоверную информацию пользователя


--------------------
На боку кобура болталась, сзади шашка отцовская звякала. 
Впереди меня все хохотало, а позади все плакало (с)
PM MAIL ICQ   Вверх
CruorVult
Дата 19.7.2011, 10:29 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 868
Регистрация: 24.9.2008
Где: г.Киев, Украина

Репутация: 9
Всего: 28



А что, транзакции отменили? smile 
PM MAIL Skype   Вверх
s0lman
Дата 19.7.2011, 11:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и лохматый
**


Профиль
Группа: Участник
Сообщений: 637
Регистрация: 1.11.2007
Где: Ukraine

Репутация: 9
Всего: 29



patap юзает MyISAM?
Где-то в литературе по ООП видел эмуляцию транзакций - это так, в качестве альтернативы (если не ошибаюсь, "ООП в php" Кузнецова)



--------------------
Когда я уже выучусь на волшебника? :(
PM   Вверх
patap
Дата 19.7.2011, 11:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 893
Регистрация: 7.5.2005
Где: Украина, Зп

Репутация: 26
Всего: 40



у меня все в MyISAM. Ведь чтобы "правильно" использывать транзакции нужно менять движок таблиц

Паралельных изменений в таблицах нет и не будет. Волнует только вопрос вставки новых данных. Т.е. нужно иметь полную гарантию того, что все три запроса на вставку буду выполнены.

блокировка MyISAM таблиц, если правильно понамаю, такой гарантии не даст: если заблочить таблицы, и производить вставку, и если произойдет, к примеру, сбой в питании сервера, в этом случае никаких откатов не будет, и получм что в одну таблицу данных вставленно небудет.
Верно?

Добавлено через 1 минуту и 4 секунды
Паралельных изменений в таблицах - это, в смысле, изменение одной и той же записи


--------------------
На боку кобура болталась, сзади шашка отцовская звякала. 
Впереди меня все хохотало, а позади все плакало (с)
PM MAIL ICQ   Вверх
CruorVult
Дата 19.7.2011, 12:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 868
Регистрация: 24.9.2008
Где: г.Киев, Украина

Репутация: 9
Всего: 28



Есть 2 главных понятия: Быстродействие и Безопасность!
Определите для начала что для вас важнее в конкретном случае и тогда можно говорить дальше.
PM MAIL Skype   Вверх
patap
Дата 19.7.2011, 12:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 893
Регистрация: 7.5.2005
Где: Украина, Зп

Репутация: 26
Всего: 40



именно под эту задачу - однозначно быстродействие


--------------------
На боку кобура болталась, сзади шашка отцовская звякала. 
Впереди меня все хохотало, а позади все плакало (с)
PM MAIL ICQ   Вверх
CruorVult
Дата 19.7.2011, 13:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 868
Регистрация: 24.9.2008
Где: г.Киев, Украина

Репутация: 9
Всего: 28



Цитата(patap @  19.7.2011,  12:51 Найти цитируемый пост)
именно под эту задачу - однозначно быстродействие 


Ну так думаю не стоит заморачиваться, если раз в десятилетку пользователь не увидит своей новосозданой темы на форуме(к примеру), то критичного сдесь ничего нету
PM MAIL Skype   Вверх
patap
Дата 19.7.2011, 13:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 893
Регистрация: 7.5.2005
Где: Украина, Зп

Репутация: 26
Всего: 40



похоже на правду. ))

и так на будущее: если задача будет действительно требовать безопасности, то нужно будет соответствующе проектировать БД?


--------------------
На боку кобура болталась, сзади шашка отцовская звякала. 
Впереди меня все хохотало, а позади все плакало (с)
PM MAIL ICQ   Вверх
CruorVult
Дата 19.7.2011, 14:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 868
Регистрация: 24.9.2008
Где: г.Киев, Украина

Репутация: 9
Всего: 28



Цитата(patap @  19.7.2011,  13:49 Найти цитируемый пост)
если задача будет действительно требовать безопасности, то нужно будет соответствующе проектировать БД?

естественно!
InnoDB + transactions+foreign key  - в помощь тогда. 
PM MAIL Skype   Вверх
patap
Дата 19.7.2011, 16:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 893
Регистрация: 7.5.2005
Где: Украина, Зп

Репутация: 26
Всего: 40



CruorVult,спасибо. ясно. Просто реально еще ниразу с подобным не сталкивался, теперь если что, то буду точно занть куда рыть

если есть кому что добавить, рад услышать


--------------------
На боку кобура болталась, сзади шашка отцовская звякала. 
Впереди меня все хохотало, а позади все плакало (с)
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1169 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.