Если никто не заплатит за это больше обычного -> зачем лишний раз напрягаться?!)
В любом случае - все ответы в блоге Яндекса: тут
А как юзать поисковую строку Яндекса - тут
Если просто делать:
1. Ищем цветовые диапазоны и замкнутые области (с площадью не менее заданных) кожных оттенков на фото.
2. При превышении порога - считаем, что там изображено обнажённое тело.
Если делать правильно:
Используем контурную и цветовую сегментацию изображения и нейросеть с последующим постепенным обучением: где пристойные фото, а где - нет.
На первое время (пока возможны ложные срабатывания, т.к. нейросеть еще недостаточно обучена) самым активным пользователям можно выдать права голосования при успешном прохождении фильтра.
Проценты диапазонов пристойного изображения (при количестве голосовавших >=5):
1. От 0-33% - отсеиваем
2. От 34-66% (включительно!) и проголосовали ВСЕ, кто может голосовать -> на модерацию администратору (этот случай очень редкий)
3. От 67% и более -> пропускаем (изображение нормальное)
Вот опять, те же "грабли":
1. Все изображения под веб - веб-дизайнер.
2. Их размещение согласно макету и компоновка в HTML-шаблон (HTML/CSS) - верстальщик.
3. Реакция на события интерфейса и манипуляция с объектами (JS) - front-end coder.
Процентная загрузка предполагает загрузку известного перечня ассетов и используется в SPA-приложениях.
Вы должны всё это создать внутри архитектуры сами.
Или поставить просто бесконечную анимацию (прелоадер) до момента полной загрузки страницы (без всяких процентов).
Ключ на вашем публичном DNS-сервере в виде TXT-записи на основе информации с публичного DNS-сервера (в программе - формула формирования и проверки):
1. имя домена 2-го уровня (где работает ваша программа)
2. все привязанные к домену IP-адреса.
3. дата регистрации доменного имени
Если сервер внутренний - достаточно сделать привязку к ID процессора и MAC-адресам всех сетевых карт.
Отвечаю СРАЗУ на 3 ваших вопроса:
Всегда используется промежуточная таблица связей между сущностями при реляционных БД и связях "многие-ко-многим":
объектА:ID<->LINK: объектA:ID, объектБ:ID<->объектБ:ID
Через такие связи Вы можете задавать любые взаимосвязи между сущностями вплоть до FULL-MESH (полносвязная структура данных).
Достаточно оптимизировать структуру до 3НФ. Глубже - уже избыточность.
А кто сказал что необходимо упорядочивать что-то?!
Всего-то: нужно составить бинарные зависимости с использованием весовой значимости факторов внутри одного узла.
Погрузитесь в мир нейросетей и систем принятия решений - должно помочь.