Опыта в web разработки особо нет, в какую сторону смотреть?В сторону учебника по веб-разработке, в первую очередь.
Вроде Yii позволяет просто админки делать? Может есть еще какие-то фреймворки? Что порекомендуете?Практически любой более ли менее полноценный фреймворк позволяет "просто" или "по быстрому" делать админки. В т.ч. Yii, Laravel, Symfony, Django (Python) и многие другие.
Можно ли сделать проверку перед удалением?Оно? Я конкретно вот про этот пример:
DROP VIEW [IF EXISTS]
view_name [, view_name] ...
[RESTRICT | CASCADE]
Чтобы не тратить время на изучение тонкостей настройки пришла идея не настраивать свою БД на сервере, а взять готовую услугу с саппортом, мониторингом и другими плюшками.Что бы не тратить время на изучение тонкостей настройки БД - гораздо практичнее было бы нанять фрилансера, при руках из нужного места, соотв. квалификации и специализации, за час - он целый кластер настроил бы.
Но возможно есть совсем BaaS-решение которое будет ещё проще в работе и по максимуму снимет с нас сейчас задачи по настройке и поддержке.По моему, примерно/почти у всех "облачных" сервисов есть услуги формата SaaS/"BaaS", например, вариация от гугла, от амазона, майкрософта (снизу есть ссылки на другие БД) и так далее...
apt install mysql-server
? Или задачи правки конфига? Если эти задачи - разовой услуги на час, думаю будет более чем достаточно (писал выше). Какую базу данных можно использовать локально без установки и чтобы можно было перенести на другой компьютерКак уже озвучил предыдущий оратор - SQLite и ещё можно Firebird embedded юзать.
Какую базу данных выбрать ? Подойдет ли MySQL для этих задач?При наличии должного опыта работы с ней, навыков правильного проектирования БД и полного понимания, зачем делать "именно так" и "почему не иначе?", думаю вполне подойдёт. А вообще, обычно базы оценивают не количеством записей в 1-ой (одной) таблице, а общим объёмом данных (в гига/пета- байтах) и некоторыми другими параметрами.
- поиск - есть ли запись в базе данных с указанным названием, если есть то обновляем данные там. Т.е. перед тем как добавить запись (а их напомню - вначале будет 5-40 млн и будут постоянно возрастать) будет проверять есть она в базе данных и добавлять/обновлять данные.Для этого есть индексы, во всех известных мне базах. Предположительно - стандартный B-tree индекс, работает он во всех базах примерно одинаково.
На базу данных будут примерно такие нагрузки:Нагрузки у Вас будут на железо а не на базу, если оно выдержит - то с точки зрения БД - логических проблем для хранения 40млн. записей - я не вижу.
Хочу узнать какими способами можно организовать структуру хранения большой информации ?"Большой инфомрации" или больших объёмов данных? 40млн. записей - это совершенно не обязательно большой объём. Например индекс по числовому (INT) полю для 40млн. записей будет занимать всего несколько мегабайт. Для хранения именно "большой информации" - можете взять, например, PostgreSQL, там есть готовый механизм, TOAST, предназначенный специально для этого, или спроектировать базу MySQL таким образом, что бы нужные данные лежали отдельно от всякого "информационного мусора" ("хвостов"), это позволит сократить размер отдельной таблицы на диске и как следствие - повысить скорость работы с ней.
пользователю, нажавшему эту кнопку, занести запись в БД?Что, простите? Занести пользователю запись в БД?
пользователю, нажавшему эту кнопку, занести запись в БДили сделать что-то ещё в таком духе.
Можно ли использовать текстовые предложения как идентификатор в базе?Удалять запись/строку/документ не по ID, а по значению одного из полей (Вы же это спрашиваете?) - вполне себе можно и иногда даже нужно. Другой вопрос, что ID - это уникальная запись, однозначно идентифицирующая некоторую строку/запись/документ, как в MongoDB, так и в SQL-базах. Иначе говоря, при удалении по ID Вы однозначно удаляете конкретную запись, в случае же удаления по какому-то иному параметру, данный параметр может совпадать с другой записью/документом, и далеко не факт, что Вы удалите то, что хотели.
В Mongo есть длинные _id из случайных символов с автоматической генерацией, но я не хочу их использовать для этих целейВы главное саму логику генерации и положения ID не трогайте, она ещё не однократно может пригодится в будущем, а удалять записи/документы, при желании, можете по любому из удобных для Вас полей. Можете например, добавлять к документу собственное поле с именем "id", вписывать туда что Вам угодно/удобно, и идентифицировать и удалять документы по этому полю.
Как связанны backend+RESTful API+Базы данных?
Но приложения на андроид пишутся на Java.Не только на Java... Но, это не имеет значения как такового, на чем они пишутся на клиенте.
Получается, что если за основу сайта я взял Django, то и на мобильном приложении будет основа DjangoНа мобильном приложении, с вероятностью 99% будет клиент. На чем он будет написан - значения не имеет особого, но Django в андроиде - очень вряд ли.
Какую роль играет при этом сервер?Роль сервера, судя по всему.
И да, последний вопрос: какие темы/аспекты нужно выучить, чтоб разбираться в этом?Конкретно про REST - я привёл Вам ссылку выше. Так же рекомендую ознакомиться со спецификацией на HTTP-протокол, полезно и в качестве примера для Вашего вопроса и вообще в целом.
Подскажите, как лучше хранить все это дело в базе? Я думал хранить в одной величине, например, в байтах, но что-то слишком большие цифры получаются.Если эти числа не выходят за максимальный допустимый размер (диапазон), например 9223372036854775807 - знаковое, 18446744073709551615 - без знаковое BIGINT, то скорее всего, ничего лучше, для хранения чисел (чем специальный тип БД, предназначенный для хранения именно чисел) - Вы не найдете.
3. Какую CMS лучше использовать для такого типа сайта, либо лучше писать такой сайт с нуля?С нуля всегда лучше, но не всегда лучше получается и как следствие - не всегда надо.
2. Возможно ли делать связку сайта с файлообменника без перенаправления что бы пользователя не кидало на сайт файлообменника и он могу получить файл с моего сайта.Возможно, но редко. Среди прочего, такие файлообменники обычно ограничивают кол-во скачиваний файла или объёма информации. Вы не хотите платить за свои же файлы, но при этом хотите, что бы файловые хостинги занимались благотворительностью... это странно :)
1. Какой файлообменник лучше выбратьНапример, Amazon S3, там есть бесплатные ресурсы (эдакое "демо"). И в целом не дорого... или, воспользоваться советом предыдущего оратора :)
Что думаете по этому поводу?Я думаю, что Вы предоставили слишком мало входных данных и конкретики. Так как, например, даже горячо любимый мной Postgres - в ряде случаев, далеко не лучший выбор. А посоветовать пихать "Базу N" везде, где только можно и нельзя, не понимая всей сути проекта, могут только те, кто с другой базой не работал, и считает, что единственная технология с которой он знаком - лучшая из всех возможных. Посему, в виду скудности входных параметров, ответ на Ваш вопрос будет, либо таким же размазанным как мой, либо чем-то из серии "Юзайте NodeJS+MySQL, мой блог с посещаемостью 30 чел./месяц, вот уже 4-ый год как стабильно работает в такой связке! И ещё на WindowsServer всё это установить не забудьте! Лучшее сочетание из возможных."
1 вариант на мой взгляд просто ужасен, так как нам придется вызывать функцию очистки при каждой попытке отобразить статью.
При надобности обрезании подобного текста есть большой риск нарушить целостность html-кода.
Firebird полностью поддерживает SQL-92 Entry Level 1 и реализует большую часть стандарта SQL-99 c некоторыми очень полезными дополнениями. Это включает выражения DML/DDL, синтаксис объединений FULL/LEFT/RIGHT [OUTER] JOIN, выражения UNION, DISTINCT, подзапросы (IN, EXISTS), встроенные функции (AVG, SUM, MIN, MAX, COALESCE, CASE, ..), ограничения целостности (PRIMARY KEY, UNIQUE, FOREIGN KEY), и все общие типы данных SQL.
своеобразный LIMIT-- LIMIT/OFFSET? Если Вы про него, то это не "своеобразный" LIMIT, это LIMIT в соответствии со стандартами, LIMIT через запятую - это изобретение авторов MySQL'я.