|
|
|
Обработка ошибок MySQL
|
|||
|---|---|---|---|
|
#18+
Добрый день. Пишу приложение, работающее с БД MySQL. В этом приложении есть возможность добавление новых записей в таблицу. Обращение к БД помещаю в блок try-catch, и при возникновении исключительной ситуации обрабатываю код ошибки и вывожу уведомление пользователю. Учитывая невнимательность пользователя, он может попытаться ввести значения, которые уже есть в БД, следовательно возникнет ошибка MySQL 1062(Duplicate entry). Вопрос: как правильнее будет поступить, оставить все как есть и просто обрабатывать ошибки, как и было или предугадывать эти ошибки до их появления(т.е. перед тем как выполнить insert в таблицу сделать сперва select на введенные данные, если такой записи нет- то делать insert, иначе вывести пользователю, что такая запись уже есть)? То есть, по сути, исключение не возникнет...но тогда придется выполнить дополнительный запрос в БД, что вроде как не оптимально...insert в таблицу будет происходить по двум запросам, вместо одного. Заранее благодарен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2015, 17:31 |
|
||
|
Обработка ошибок MySQL
|
|||
|---|---|---|---|
|
#18+
По принципу бритвы Оккама можно делать как проще. Особой разницы между этими подходами нет. Поэтому лучше тот что проще. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2015, 19:21 |
|
||
|
Обработка ошибок MySQL
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, то есть оба метода равносильны по производительности и разницы нет каким способом делать insert в БД? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2015, 19:28 |
|
||
|
Обработка ошибок MySQL
|
|||
|---|---|---|---|
|
#18+
spider1581Blazkowicz, то есть оба метода равносильны по производительности и разницы нет каким способом делать insert в БД? В разных ситуациях эти методы могут отличаться по производительности в разную сторону. Ваша глубокая ошибка в том что вы уделяете столько времени производительности, там где в этом необходимости нет. Производительность должна быть удовлетворительной, но не обязательно максимальной. Оба варианта в этом плане подходят. Важно на начальном этапе научится писать простой, легко модифицируемый и тестируемый код, а не искать способа выжать производительность там где она вам никогда не понадобится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2015, 19:44 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=38998276&tid=2125217]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
148ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
37ms |
get tp. blocked users: |
2ms |
| others: | 218ms |
| total: | 445ms |

| 0 / 0 |
