Ответы пользователя по тегу Базы данных
  • Огромная БД mySQL- что изучить?

    kumaxim
    @kumaxim
    Web-программист
    Первое - составь схему своей БД. Третью нормальную форму знаешь? Приведи свои данные к ней, для начала.
    Затем тебе нужно определить условия порций. Ознакомиться с этим можно вот здесь Если коротко - это позволяет хранить БД на более чем одном жестком диске и добавляет скорости, когда у тебя записей в таблице очень-очень много.

    Затем тебе нужно понимать, какие операции у тебя происходят наиболее часто - чтение или запись. Исходя из этого выбирай механизм хранения(MyISAM или InnoDB) и оптимизируй настройки СУБД, в т.ч. кеш.

    Вообще твой вопрос очень размыт. На него сложно дать однозначный ответ сейчас. Ты пишешь про 240 млн. записей. Хорошо, может быть для тебя это много, лет 5 назад я бы тоже испугался. Ты должен понять, что количество записей мало что играет. Необходимо понимать их структуру, состав, частоту обращений, характер этих обращений, размер и т.п. Выкини из головы цифру и сосредоточься на реализации. Также решай проблемы по мере их поступления. Оптимизировать что-либо стоит тогда, когда это уже работает. Оптимизировать нужно то, что понятно, а не какие-то абстрактные циферки несуществующей еще таблиц БД
    Ответ написан
  • Как переписать SQL запрос?

    kumaxim
    @kumaxim
    Web-программист
    Все участвующие в условиях WHERE поля, должны иметь индекс. В идеале это либо PK либо UNIQUE. Я думаю что твоя проблема где-то в этой стороне, но без детальных сведений о твоей БД более точно сказать ничего не могу.
    Ответ написан
  • Могу ли я продать базу контактов?

    kumaxim
    @kumaxim
    Web-программист
    Есть самая классная база строительный компаний, называется ЕГРЮЛ. Так вот, если информация внутри Вашей базы по сути дублирует информацию оттуда - брать Вас не за что, это даже под закон о персональных данных не попадает. Однако, если у Вас в БД информация по паспортным данным учредителей/директоров, их з/п, о выплаченных дивидендах, бух.балансе компании и т.д., у разного рода интересных людей, особенно у прокуроров и следователей, могут возникнуть к Вам ряд вопросов...
    Ответ написан
    1 комментарий
  • Как и где хранить пользовательские данные в соответствии с законом "О персональных данных"?

    kumaxim
    @kumaxim
    Web-программист
    В тексте этого закона написано примерно следующее: "персональные данные граждан РФ должны храниться на серверах, расположенных в пределах РФ". Вы где-то видите что эти данные должны хранится исключительно в РФ? Лично я там такого пункта не нашел.

    Лично для себя я придумал такое решение: ничего из Германии где у меня все настроено и прекрасно работает я переносить не собираюсь, но дабы не влететь на штраф от Роскомнадзора, я беру в РФ VPS'очку, устанавливаю там СУБД и настраиваю репликацию. Все! Формально я требования закона исполнил, регулятору придраться не к чему.

    Если пойдете по моему пути - заключайте с российским хостером договор и платите через банк ему на р/с, квитанции храним 3 года. Так в суде Вам будет легче доказать что Вы не "олень", если Ваша разборка с регулятором дойдет до суда.
    Ответ написан
    Комментировать
  • Зачем ставят сервер баз данных на виртуалку?

    kumaxim
    @kumaxim
    Web-программист
    Если речь идет о том, что СУБД будет крутиться на университетских ПК, тогда цель может быть только одна - не засорять основную ОС. Представь, ты сел, поставил себе СУБД на хостовую ОС, создал какую-то базу, забил пару таблиц информацией и т.д.

    Первая причина - время инсталляции СУБД. Не знаю как для MS SQL, но, например, Oracle 10g ставится около 50 минут, что есть полпары. А процесс инсталяции особо ничем не примечателен, просто сидишь втыкаешь в процесс бар на экране...

    Вторая причина.
    ОК, поставил ты СУБД, начинаешь ты ее конфигурировать. Все упирается в рут-пароль, без которого, например, Oracle снести вообще нельзя(хотя могу ошибаться). Можно конечно условится, чтобы пасс был один, но кто-нибудь из больно "умных" студентов задаст свой пароль и потом надо будет над этим ПК оператору аудитории с бубном плясать пару часов либо искать кто ставил тот злосчастных пасс... А это все время, на которое учебная машина выпадает из учебного процесса.

    Третья причина
    Убил кто-то СУБД корявыми настройками. Сколько надо будет танцевать с бубном чтобы выпилить убитую СУБД с хостовой ОС? Зависит от того как убили, но ясно что на это время опять университетская машина из учебного процесса выпадает.

    А теперь прикинь, что СУБД стоит под виртуалкой и есть где-то образ с конфигурацией по умолчанию. Развернуть виртуалку на основе готового образа - дело 5-10 минут. Снести виртуалку или заменить ее - опять же больших проблем не вызовет.
    При этом, как было подмечено в выше, в настройках твоего приложения разница будет только в 1 строке - адрес сервера. Для локального localhost, для любого другого - ip-адрес
    Ответ написан
    Комментировать
  • Информационная безопасность или чему учат в ВУЗах?

    kumaxim
    @kumaxim
    Web-программист
    Алгоритм примерно такой:
    1.Первым делом тебе нужна компания. Найди через знакомых человека, который тебе может подписать акт внедрения. На край мне стукни на почту,
    2.Далее делаешь какую-нибудь маленькую CRM-ку.
    Например есть магазин, часть клиентов вносят предоплату, и организация за это дает им скидку в 10-20% от розничной цены. С такими клиентами заключается договор, подписываются накладные и т.д. Поскольку в договоре содержатся персональные данные, в соответствии со 152-ФЗ их нужно защищать
    3.Открываешь РД "Средства вычислительной техники", читаешь, и подгоняешь эту CRM-ку под 5-й класс защиты, выше тебе не нужно
    4.По тексту своей работы ты пишешь, что мол я разработал систему защищенного обмена информацией на основе (... думай дальше сам чего....)
    5.Итогом ты будешь иметь клиент-серверное приложение(СУБД в облаке, окошки на ПК) на C#/Java, данные между клиентом и сервером шифруются, вход осуществляется с использованием токена.

    После защиты, как происходит в 90% случаев, свою работу ты выбросишь и получишь бумажку под названием "ДИПЛОМ", причем сейчас в дипломе даже не пишут что ты получил высшие образование, просто ДИПЛОМ... И вот, получив его ты становишься безработным.... Профит :-)

    P.S.: пособие по безработице для выпускников ВУЗов составляет 850 рублей...
    Ответ написан
    Комментировать
  • Целесообразно ли хранить картинки в БД?

    kumaxim
    @kumaxim
    Web-программист
    Картинки в БД хранить плохо и вот почему.

    Если картинка лежит в БД, то для того чтобы ее вытащить нужен php-скрипт, который отправит запрос на ее извлечение. Будет формироваться диначеское содержимое, работает Apache.

    Если картинка лежит в папке, то для ее отображения достаточно просто обратится к ней по УРЛу. Здесь можно обойтись без скрипта, следовательно может работать только nginx.

    В чем суть - nginx кушает НАМНОГО меньше ресурсов, по сравнению с apache. Статистику можете погуглить.

    Единственное ограничение при использовании хранилища в папках - для *nix папка не может содержать более 42 с чем-то тысяч файлов(с цифрой могу ошибаться, но не суть), поэтому учтите этот аспект.
    Ответ написан
    3 комментария
  • Где нужна дискретная математика в веб программировании?

    kumaxim
    @kumaxim
    Web-программист
    Базовые операции над множествами: пересечение, разность, исключение и т.д. Выше писали про комбинаторику - в принципе оно.
    Еще внимательно послушай препода когда будите СДНФ и СКНФ проходить, сильно поможет при составлении сложных условий в коде.
    Как еще вариант - задачи на поиск кратчайшего пути(алгоритм Дейкстры, задача комивояжера). Применение - с какого из складов будет быстрее доставить клиенту интернет-магазина заказ.
    Ответ написан
  • Как реализовать правильную структуру таблицы сотрудников, работодателей?

    kumaxim
    @kumaxim
    Web-программист
    Для начала нужно определить сущности системы. У Вас я их вижу две: человек(user) и работа(job).

    Теперь, Ваш юзер создает проект(project), выступая работодателем. Для проекта мы должны запомнить работодателя, для начала. Значит пока будет таблица job: id, id_user

    Далее, на каждую работу работодатель назначает исполнителей. Не пихайте список исполнителей в таблицу project, замучаетесь потом обрабатывать данные по исполнителем. Создайте таблицу project_performer : id_project, id, id_user

    Итого, у нас получается 3 таблицы:
    1)Пользователи системы: user - id, логин, соль, пароль, мыло и т.п.
    2)Работа(проекты): job: id, id_user, desc и т.д.
    3)Исполнители работы: project_performer : id, id_project, id_user,

    Теперь Ваши запросы
    1)Отобразить всех работодателей. Работодателем будет юзер, если его id есть в таблице job
    2)Отобразить всех сотрудников. Сотрудником будет юзер, если его id есть в таблице project_performer
    3)Отобразить всех сотрудников конкретного работодателя.
    select user.* from user, job, project_performer where job.id_user = id_пользователя_работодателя AND job.id = project_performer.id_project AND project_performer.id_user = user.id

    4)Все работодатели, с которыми когда-либо работал исполнитель
    select user.* from user, job, project_performer where project_performer.id_user = id_пользователя_исполнителя AND project_performer.id_project = job.id AND job.id_user = user.id

    За корректность запросов на 100% не ручаюсь
    Ответ написан
    3 комментария
  • Как лучше организовать запись в БД (система лайков)?

    kumaxim
    @kumaxim
    Web-программист
    Если у Вас возникает сейчас такой вопрос, значит Вы пишите первую версию Вашего скрипа, а если так, значит Вам нужно придерживаться 3-й нормальной формы.
    Ответ написан
    Комментировать
  • Как спроектировать онлайн-склад?

    kumaxim
    @kumaxim
    Web-программист
    Сделай интеграцию с 1С-Склад, будет куда проще и быстрее
    Ответ написан
    Комментировать