Как раз зависит. Вы правильно сказали, что с One-Many будет проще, если может быть только одна категория - тогда это единственный правильный вариант, потому что Many-Many будет избыточным и лишним усложнением.
Если есть не 0-я вероятность множеств категорий ассоциированных с одной статьей - единственно верный Many-Many, потому что One-Many не выполняет изначальных требований.
Ищи людей, которые напишут тебе диплом за денюшку. Но вообще по хорошему все начинается с ТЕМЫ диплома, я сомневаюсь, что она звучит как "разработка какого-либо приложения на каком-либо языке".
Просьба войти в положение отчаявшегося студента в поиске готового проекта.
yorick_kiev_ua Вы зря язвите. Ответ был все же для автора вопроса. В нем я акцентировал внимание именно на том, что знать нужно *много*, примеры чего и привел. На счет order by rand - это немножко о наболевшем.
@yorick_kiev_ua
> зная PHP-шников я думаю это всё-таки был не троллинг
Видимо знакомый вам круг php-шников - это обычные визитко-строители с эффектом Даннинга-Крюгера))
может вне области видимости, может инициализация это переменной не происходила, может unset, может файл таки не подключен. Причин может быть множество.
В больших таблицах лок на чтение будет очень длительным, потому как для каждой строки будет высчитываться ее "вес" N раз, пока это дело не устаканится. При этом лок на чтение снимется только после этой операции. В случае обычных сортировок "вес" будет для каждой строки постоянным. На текущей работе возникла проблема: innodb history зашкаливает, тысячи запросов на чтение ждут в среднем по 20-30 секунд. Оказалось какой-то паря сделал следующую красоту:
в подзапросе вытягивал 1к последних записей, а во внешнем сортировал по random.
Как только переписали эту лабуду на:
1. выборка 1к id-шников + их кэширование на 1 мин
2. сортировка средствами php
проблема была исправлена.
Если бы он не сделал выборку подзапросом, а сортировал по всем - система упала бы на порядки быстрее.
Piwik умеет сохранять пользовательские данные. Вам необходимо их передавать, например это будет siteID, или что-то типа того. Далее фильтруйте по этим данным
Вам придется чем-то жертвовать в любом случае. Проблему выключенного телефона, или находящегося в другой комнате, или не услышанного звонка вы не решите, от слова совсем.
Как вариант можете заюзать https://telegram.org/ и написать для него бота, который будет слать сообщения, но это потребует постоянного подключения к Internet.