|
Припаркованный домен делает дубликаты записей в базу, как этого избежать?
|
|||
---|---|---|---|
#18+
Ситуация: есть сайт с падовским софтархивом, и есть домен, припаркованный к нему. В базе хранится часть полей пада + сам пад. При сабмите пада должна идти проверка на наличие его в базе, если такой есть, и обновление тех полей, что хранятся отдельно. Т.к. база данных получается одна, предполагалось, что при последовательном сабмите с обоих сайтов первый добавит запись, а второй пойдет на обновление. На деле второй сайт создает дубликат записи в базе. Сама по себе проверка наличия пада в базе работает нормально, т.к. если пытаться второй раз сабмитить с одного и того же сайта, идет обновление, и дубликата не создается. Что это за фигня и как с этим бороться? Если нужна еще какая-то инфа о ситуации, напишите какая, добавлю. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2019, 07:23 |
|
Припаркованный домен делает дубликаты записей в базу, как этого избежать?
|
|||
---|---|---|---|
#18+
IcyWizardчасть полей пада + сам падэто что за зверь? И вообще причем тут MySQL ? Если "бороться" предполагаете на уровне MySQL, то показывайте структуру таблиц, запросы и т.п. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2019, 07:36 |
|
Припаркованный домен делает дубликаты записей в базу, как этого избежать?
|
|||
---|---|---|---|
#18+
пад = PAD = xml-страничка с описанием продукта. Типа такого http://repository.appvisor.com/info/app-900073a68ec0/PassportPDF_PDF_Reducer_pad.xml . Может храниться либо на сайте компании-владельца продукта, либо на глобальном репозитории, как в примере. Его структура стандартизована ASP. Почему MySQL - потому что есть ощущение, что может быть ошибка в подходе к записи/хранению инфы. $soft_pad_url - ссылка на пад Код: php 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37.
Нюанс еще в том, что есть аналогичная пара сайтов (основной + припаркованный), но не софтархивы, а статейные архивы. Движок переделывался оттуда, и там поиск в базе идет по названию статьи. Так там этой проблемы нет, никаких дубликатов. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2019, 08:05 |
|
Припаркованный домен делает дубликаты записей в базу, как этого избежать?
|
|||
---|---|---|---|
#18+
Покажите DDL таблицы software. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2019, 08:54 |
|
Припаркованный домен делает дубликаты записей в базу, как этого избежать?
|
|||
---|---|---|---|
#18+
сделай уникальный индекс на soft_pad_url ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2019, 10:16 |
|
Припаркованный домен делает дубликаты записей в базу, как этого избежать?
|
|||
---|---|---|---|
#18+
Увы, я новичок и терминологией владею плохо. Что такое ddl? Выложу на всякий то, что видно через phpMyAdmin: Про БД: Сервер: Localhost via UNIX socket Тип сервера: MariaDB Соединение сервера: SSL не используется Версия сервера: 10.3.14-MariaDB - MariaDB Server Версия протокола: 10 Кодировка сервера: UTF-8 Unicode (utf8) Про веб-сервер: Apache PHP расширение: mysqliДокументация curlДокументация mbstringДокументация Версия PHP: 7.3.2 Список полей таблицы software: soft_id (который primary key, auto increment) плюс те поля что в запросах: soft_name, soft_version, soft_short_descr, soft_long_descr, soft_category, soft_cost, soft_license, soft_os, soft_size, soft_download_url, soft_info_url, soft_pad_url, soft_keywords, soft_company, soft_fcontact_name, soft_scontact_name, soft_email, soft_data все кроме последнего берется из пада, последний - текущая дата. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2019, 10:19 |
|
Припаркованный домен делает дубликаты записей в базу, как этого избежать?
|
|||
---|---|---|---|
#18+
ScareCrowсделай уникальный индекс на soft_pad_url уникальный индекс с автоинкрементом на запись есть. А что означает "уникальный индекс на soft_pad_url"? Его как-то можно привязать не к записи, а к одному из ее полей? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2019, 10:21 |
|
Припаркованный домен делает дубликаты записей в базу, как этого избежать?
|
|||
---|---|---|---|
#18+
авторЕго как-то можно привязать не к записи, а к одному из ее полей ну да. https://devionity.com/ru/courses/mysql-fundamentals/adding-indexes ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2019, 10:46 |
|
Припаркованный домен делает дубликаты записей в базу, как этого избежать?
|
|||
---|---|---|---|
#18+
При попытке поставить (через phpMyAdmin) уникальность на soft_pad_url пишет: запрос: ALTER TABLE `software` ADD UNIQUE( `soft_pad_url`); результат: BLOB/TEXT column 'soft_pad_url' used in key specification without a key length тип поля soft_pad_url - tinytext ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2019, 10:50 |
|
Припаркованный домен делает дубликаты записей в базу, как этого избежать?
|
|||
---|---|---|---|
#18+
IcyWizardЧто такое ddl? Это Data Definition Language, и в данном случае имеется в виду - структура таблицы. То, что выводится в ответ на запрос Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2019, 11:42 |
|
Припаркованный домен делает дубликаты записей в базу, как этого избежать?
|
|||
---|---|---|---|
#18+
Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22.
... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2019, 12:05 |
|
Припаркованный домен делает дубликаты записей в базу, как этого избежать?
|
|||
---|---|---|---|
#18+
Код: sql 1. 2.
А потом INSERT .. ON DUPLICATE KEY UPDATE .. . ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2019, 14:10 |
|
|
start [/forum/topic.php?fid=47&fpage=36&tid=1829187]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
39ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
55ms |
get tp. blocked users: |
2ms |
others: | 13ms |
total: | 160ms |
0 / 0 |