Задать вопрос
  • Как изменить строку в файле?

    @0LLEGator
    "Начинающий" программист в средней компании.
    Вопрос о том, как удалить гланды per anus. Можно НО ЗАЧЕМ? (так извращаться)
    По теме - непосредственная низкоуровневая работа с диском.
    Ответ написан
    Комментировать
  • В какой сборке лежит System.Web.Mvc?

    @0LLEGator
    "Начинающий" программист в средней компании.
    Tools -> чего-то там NuGet. А там в поиске наберите MVC. Правильно написали - это расширение, устанавливается специально ДЛЯ ПРОЕКТА.
    Ответ написан
    Комментировать
  • Может ли быть в 1 таблице, две одинаковые другие?

    @0LLEGator
    "Начинающий" программист в средней компании.
    В одной таблице в разных записях могут быть одинаковые внешние ключи. НО они (по идее) должны иметь разные первичные ключи, всё-таки это разные телефоны, и ссылаться должны на одну-единственную запись другой таблицы, где собраны владельцы. Как-никак в общем случае вещью владеет один-единственны человек.
    Ответ написан
  • Как сделать эффективный запрос по диапазону дат?

    @0LLEGator
    "Начинающий" программист в средней компании.
    Из таблицы со свободными датами номеров выбираете все записи, у которых дата попадает в введённый пользователем диапазон и проверяем, что количество записей для каждого номера равно диапазону.
    Таблица FreeNumbers:
    FreeDate - Дата, когда номер свободен
    NumberNo - номер номера

    SELECT count(NumberNo), datediff ('dd', @BeginDate, @EndDate), NumberNo
    From FreeNumbers
    WHERE FreeDate between @BeginDate and @EndDate
    group by NumberNo, datediff ('dd', @BeginDate, @EndDate)

    Код на MS SQL'е, звиняйте.
    Спасибо, nApoBo3, за ценное замечание
    Ответ написан
  • Логирование трафика в БД - как нормализовать?

    @0LLEGator
    "Начинающий" программист в средней компании.
    На мой взгляд лучше добавить поля к connect_time, правда придётся разрешить в них значения null.
    Не стоит множить сущности без необходимости, а количество полей на скорость не влияют. Тем более что вся инфа в одной таблице и дополнительно джойнить, более того, скорее всего left join-ом, не придётся.
    Ответ написан
    Комментировать
  • Проблема с нужной выборкой?

    @0LLEGator
    "Начинающий" программист в средней компании.
    Можно соорудить простой запрос для подсчёта количества разговоров
    SELECT ifnull(COUNT ( `dl2`.`dialog_id`),0) AS ` dialog_count`
    FROM `dialog_relations` AS `dl1`
    INNER JOIN `dialog_relations`  AS `dl2` USING(`dialog_id`)
    WHERE `dl1`.`user_id` = @user1 AND `dl2`.`user_id` = @user2

    Но в приведённой вами схеме данных такой запрос может завышать количество разговоров, если они есть. Если совпадений нет, то они не появятся. Чтобы этот запрос работал корректно, рекомендую в первой таблице вместо искусственного PK в виде id записи сделать составной PK состоящий из ID разговора и ID участника, тогда он будет отражать суть и предохранять от дублирования записей.

    Для конкретно вашего случая правильно считать количество будет запрос
    SELECT ifnull(COUNT (DISTINCT `dl2`.`dialog_id`),0) AS ` dialog_count`
    FROM `dialog_relations` AS `dl1`
    INNER JOIN `dialog_relations`  AS `dl2` USING(`dialog_id`)
    WHERE `dl1`.`user_id` = @user1 AND `dl2`.`user_id` = @user2


    Чтобы лишь определить наличие разговоров можно сделать "красивее"
    SELECT ifnull(COUNT (DISTINCT `dl2`.`user_id`),0) AS ` dialog_count`
    FROM `dialog_relations` AS `dl1`
    INNER JOIN `dialog_relations`  AS `dl2` USING(`dialog_id`)
    WHERE `dl1`.`user_id` = @user1 AND `dl2`.`user_id` = @user2

    тут 0 - нет диалогов, 1 - есть диалоги.

    P.S. Справедливости ради хочу отметить, что без ifnull'а должно подойти для запроса @akashtrih-а. Единственное, стоит проверить на запросе с отсутствием разговоров между пользователями.
    Ответ написан
    2 комментария
  • Как рассчитать тормозной резистор для асинхронного 3х фазного двигателя?

    @0LLEGator
    "Начинающий" программист в средней компании.
    Торможение - обязательное условие? Может сам как-нибудь на трение потратится?
    Хотелось бы полную схему подключения к сети, да и тип двигателя, ротор фазный, не? Из найденной мною схемы управления двигателем не совсем понятно, куда вы собираетесь подключить тормозной резистор.
    По идее достаточно просто произвести "противовключение", чтобы поле крутилось в обратную сторону и двигатель будет останавливаться.
    Для обстоятельных ответов нужна электрическая схема включения двигателя со всеми управляющими элементами.
    А вообще есть рекомендации по торможению вашего двигателя? Потому что выбор электрической схемы зависит от силовой части управления во вторую очередь, а от микроконтроллера в третью. А самую важную инфу (схема, тип и модель двигателя) вы умолчали.
    Ответ написан
  • Как продвигать интересный проект с хорошим контентом?

    @0LLEGator
    "Начинающий" программист в средней компании.
    Сайт интересный, но нужно очень много вкладывать сил в его наполнение.
    Для популяризации добавил бы политику и анонимные комментарии, очень благодатная почва будет.
    Ответ написан
  • Как произвести объединение таблиц в mysql?

    @0LLEGator
    "Начинающий" программист в средней компании.
    А где ответ на первый вопрос, про тип связи? Он самый главный. Видимо "многие-ко-многим".
    "Разруха не в сортирах, разруха в головах"
    Судя по всему, декартово произведение у вас не в запросе, который отрабатывает правильно, а в таблицах, в которых значений мало и они сильно пересекаются, а то и вообще во впечатлении от выборки.
    Запрос выдаёт ВСЕХ пользователей, связанных с КАЖДОЙ записью беседы (видимо всех участников конкретной беседы, если я правильно понял смысл названий.
    Так вот, SQL так устроен, что вместо
    Беседа 1:
    - Участник 1
    - Участник 2
    - Участник 4

    Выводит
    Беседа 1, Участник 1
    Беседа 1, Участник 2
    Беседа 1, Участник 4

    Что не является пересечением (участник 3 не был выведен, т.к. принимал участие в другой беседе), но может таким выглядеть. Рекомендую для теста ввести около 3 бесед и 10 участников, в каждой беседе не более 3 участников в произвольных сочетаниях, и добавьте сортировку по `conversation`.`id_conversation` тогда будет отчётливо видно, как работает.
    И да, изучите вопрос первичных ключей (ПК), их назначения и ОБЯЗАТЕЛЬНО используйте. Здесь, например, исходя из логики запроса напрашиваются`conversation`.`id_conversation`, хотя бы. И нормальные формы БД тоже...
    Для проверки сравните количество строк в запросах
    SELECT * FROM `user_conversation` 
    SELECT * FROM `user_conversation`  WHERE `user_conversation`.`id_conversation` = 1

    С количеством строк, которые выводит ваш запрос.
    Ответ написан
    Комментировать
  • Как рассчитать зарплату веб-разботчика и сисадмина?

    @0LLEGator
    "Начинающий" программист в средней компании.
    Во-первых, пересмотрите ваш взгляд на админство. Админ работает хорошо, когда он пьёт пиво и гамает в дьяблу, а не носится целый день взмыленный. Так что тут как минимум 50/50. И ваш директор должен понимать, что долгосрочная надёжная работа существующего функционала важнее фич при нестабильном качестве (радость от новой фичи длится недолго, а вот огорчение от ошибки гораздо дольше, есть и исследования на эту тему). Ну и чтобы шеф тоже был доволен можно ввести штраф за простой или недоступность основных или второстепенных функций.
    Поддержку пользователей тоже нужно разделить. Потому что ошибка сетевой карты и отравление мозга перекисью водорода в виде "я ничего не понимаю и понимать не хочу" - это разные вещи. Поэтому ошибки включаются в админство, а "пользовательские обращения" и "пользовательские обращения с обучением" оплачиваются по факту фиксировано + каждые полчаса дополнительно, потому что вместо консультирования тупых куриц ты мог бы писать свистелки. Заодно и директор будет знать, кто вместо работы не может попасть в одноклассники или не желает выполнять свою работу, перекладывая её на тебя.
    Ну а по поводу программирования соглашусь с идеей дедлайнов. Согласуете объём работ из расчёта 1/2 рабочего дня на программирование и стоимость доработки. В каком месяце сделал, в таком и получил стоимость доработки за срыв сроков - штраф. Соответственно премии за укладывание в срок как таковой нет, но чем больше времени ты тратишь, тем больше дополнений запрограммируешь, тем больше получишь в итоге.
    Вот как-то так выглядит схема "и нашим и вашим" в моём представлении.
    Ответ написан
    4 комментария
  • Как зарабатывать дома с помощью интернета с максимальной анонимностью?

    @0LLEGator
    "Начинающий" программист в средней компании.
    Странный вопрос. Такое ощущение, что вы не только просите совета, как анонимно вывести зароботок, но и каком способом можно заработать, чтобы без анонимного вывода денег было нельзя обойтись.
    Совета два:
    1. оплата наличкой (для максимальной анонимности сбрасываете хвосты и встречаетесь в маске), способ уязвим для методов терморектального криптоанализа.
    2. Может я открою секрет, но всем прекрасно известно, что существует "такой-то Вася Пупкин, родившийся тогда-то, прописанный там-то", так что анонимность в любом случае не полная по определению. Предлагаю расширить эту неанонимность до размеров "Вася, родился..., прописан..., зарабатывает 150, ковыряя говносайтики", при этом ценность такой информации не повысится ни на йоту. Таким образом получается двойная жизнь, в одной вы неприметный программист-одиночка, в другой - анонимный воин интернета.
    Ответ написан
    Комментировать