- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу

Как удалить плохие SEO-ссылки и очистить ссылочную массу сайта
Применяем отклонение ссылок
Сервис Rookee
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Ну все таки один вопрос остается пока не решен это удаление дубликатов + ассинхронное удаление по айди из другой таблицы
delete + left join `another_table`
or
delete t from table t left join table_with_title z ON z.id=t.id WHERE z.id IS NULL
delete + left join `another_table`
or
delete t from table t left join table_with_title z ON z.id=t.id WHERE z.id IS NULL
А как быть с дубликатами то ?
Я не пойму одну вещь, как при удалении дубликатов отследить айди постов которые удаляются ?
Ну к примеру
ALTER IGNORE TABLE tbl_name ADD UNIQUE INDEX(title);
в tbl_name есть row > id
Вот при удалении, как узнать какой id удалился ?..
Может я не правильно как то логически себе это представляю..
Ну я понял к чему вы клоните
Мб. Но на всяк случай попробую пояснить.
Связи типа "многие-ко-многим" требуют промежуточную таблицу.
В самой базе может не быть видно прямых связей (зависимостей), а только в самом же движке жестко прописано какое поле в какой таблице нужно использовать.
Проще говоря по БД может не быть видно что значение в поле ID_metadata в таблице tbl_meta тоже самое, что и в поле ID_post в таблице tbl_content.
И это не самый сложный случай. Бывает, что к ИДшику поста "подязываются" данные из нескольких таблиц, при этом не по ИД поста, а через одно или несколько промежуточных данных.
Мб. Но на всяк случай попробую пояснить.
Связи типа "многие-ко-многим" требуют промежуточную таблицу.
В самой базе может не быть видно прямых связей (зависимостей), а только в самом же движке жестко прописано какое поле в какой таблице нужно использовать.
Проще говоря по БД может не быть видно что значение в поле ID_metadata в таблице tbl_meta тоже самое, что и в поле ID_post в таблице tbl_content.
И это не самый сложный случай. Бывает, что к ИДшику поста "подязываются" данные из нескольких таблиц, при этом не по ИД поста, а через одно или несколько промежуточных данных.
Ну такое мне вроде небыло известно, но в данном случае мне известно связть между таблицами по айди, ибо там просто вариант всего, только ед не помй как узнать айди удаленных дубликатов.
Просто если бы я знал эти айди я бы мог удалить все айди с другой таблицы.
ADD UNIQUE INDEX
А нахрена использовать UNIQUE INDEX для удаления дублей? Этот индекс имеет немного другое логическое значение.
Какие отсутствуют в таблице те и удалились. Какие ид отсутствуют можете узнать джоинив другую таблицу в которые есть связь с ними.
А нахрена использовать UNIQUE INDEX для удаления дублей? Этот индекс имеет немного другое логическое значение.
Какие отсутствуют в таблице те и удалились. Какие ид отсутствуют можете узнать джоинив другую таблицу в которые есть связь с ними.
Да, я понимаю что опытный бы юзер понял все, который работает с бд не мало времени :)
Ну я стараюсь понимать, вот на счет последнего предложение не очень понял, какую другую, я тогда если можно показать пример, или написать логические действие.
1. Что использовать вместо ? UNIQUE INDEX ? (Мне нужно что бы в будущем нельзя было вставить один и тот же тайл, поэтому я и решил использовать уникальный индекс.. тем самым удалив дубли)
2.Получается мне нужно сделать две копии таблицы tbl_name и tbl_name_tmp, потом в одной из них, удалить дубликаты, а потом что ? как сделать такое джоин или что там что бы показал какие айди были удалены ?
1. Что использовать вместо ? UNIQUE INDEX ? (Мне нужно что бы в будущем нельзя было вставить один и тот же тайл, поэтому я и решил использовать уникальный индекс.. тем самым удалив дубли)
В будущем, прежде чем вставлять, проверяйте уникальность значения в бд. UNIQUE INDEX больше подходит для полей которые действительно должны быть уникальными - ид, ключи и пр, тайтл это не совсем то поле. Для удаления используйте пример с первой страницы, для вставки - создайте функцию checkTitle($title) которая будет проверять уникальность тайтла.
Получается мне нужно сделать две копии таблицы tbl_name и tbl_name_tmp, потом в одной из них, удалить дубликаты, а потом что ?
Нет. Таблицы используйте те, которые у вас связаны с этой.
как сделать такое джоин или что там что бы показал какие айди были удалены ?
Пример показан выше.
select t.* from table t left join table_with_title z ON z.id=t.id WHERE z.id IS NULL
table_with_title - таблица с тайтлами.
table - связанная таблица
В будущем, прежде чем вставлять, проверяйте уникальность значения в бд. UNIQUE INDEX больше подходит для полей которые действительно должны быть уникальными - ид, ключи и пр, тайтл это не совсем то поле. Для удаления используйте пример с первой страницы, для вставки - создайте функцию checkTitle($title) которая будет проверять уникальность тайтла.
Нет. Таблицы используйте те, которые у вас связаны с этой.
Пример показан выше.
select t.* from table t left join table_with_title z ON z.id=t.id WHERE z.id IS NULL
table_with_title - таблица с тайтлами.
table - связанная таблица
Щас попробую ваш пример,
Вопрос на счет проверки тайтла, (я думал сделать проверку таким образом)
1.Сначала уникализируем все тайтлы.
2.Перед вставкой поста, делаем селект из бд, с тайтлом юзера, если не нашли, вставляем, если нашли, возвращаем сообщение что тайтл уже существует.
Все верно ? почему тайтл нельзя уникализировать ? (тогда как лучше посоветуйте)
2.Перед вставкой поста, делаем селект из бд, с тайтлом юзера, если не нашли, вставляем, если нашли, возвращаем сообщение что тайтл уже существует.
Для этого первый пункт не нужен.
почему тайтл нельзя уникализировать ?
Никто не говорит что нельзя, логически это не обоснованно. По природе своей тайтл не уникальное значение, вполне логически что могут быть две новости с одинаковым тайтлом. Если хотите исключить дубли - проверяйте перед вставкой.
Для этого первый пункт не нужен.
Никто не говорит что нельзя, логически это не обоснованно. По природе своей тайтл не уникальное значение, вполне логически что могут быть две новости с одинаковым тайтлом. Если хотите исключить дубли - проверяйте перед вставкой.
Спасибо за приме выше с IS NULL нашел способ естесвенного отбора.
А что посоветуете на счетй тайтлов ? вообщем в действительности есть много постов с одинаковыми тайтлами, но с разным описанием..
Вот сижу думаю что с ними делать, или ниделать ничего, дело в том что есть сайт, на нем иногда юзеры постят одни и теже сообщение но в разное время.
Вот не могу понять как придумать, что бы можно отследить есть ли такое уже в базе или нету..
естесвенно без супернагрузок на бд