Задать вопрос
  • Best practice для подтверждения мейла при регистрации?

    @d-stream
    Готовые решения - не подаю, но...
    Еще как вариант: держим пользователя до активации в черном теле, оставив ему собственно возможность править свой e-mail и отправлять активацию снова.

    Ну и понятное дело - срок годности активации и ограничение на число и частоту смен почты и повторной активации.
    Ответ написан
    Комментировать
  • Как правильно распределить провайдеров интернета?

    @d-stream
    Готовые решения - не подаю, но...
    Для самого начала не помешает озвучить что за маршрутизатор(ы) используются. У большинства НЕдомашних как правило в описаниях, примерах приводятся варианты балансировки каналов, мониторинга и динамического переключения маршрутов и т.п.

    Как уже CityCat отметил про AS - пропускаем. А так: раскидываем каналы по вкусу (например по сервисам, приоритетам, нагрузкам) и мониторим доступность "вечного" ресурса через разные интерфейсы. В случае падения - динамически меняем маршруты или их метрики на второй канал
    Ответ написан
  • SQL запрос на вывод диапазона возраста имея только дату рождения?

    @d-stream
    Готовые решения - не подаю, но...
    Ну можно "в лоб" - вычислять возраст как datediff(year, BirthDate, getdate())
    или даже case сразу кластеризовать это по возрастным группам.

    То есть нечто типа:
    SELECT 
    LoginID,
    age_group = datediff(year, BirthDate, getdate())  -- или же кэйсом разбивать на интервалы
    FROM HumanResources.Employee 
    where age_group between 25 and 30


    В зависимости от потребности в примерном возрасте или "полных лет" - чутка модифицировать datediff
    Ответ написан
    Комментировать
  • Как исправить кракозябры в сообщениях об ошибке в pyodbc/pymssql?

    @d-stream
    Готовые решения - не подаю, но...
    Стоит попробовать переключить кодировку (chcp unicode или chcp 65001)
    Ответ написан
  • Как пробивать НАТ?

    @d-stream
    Готовые решения - не подаю, но...
    Универсального нет. Выше вариант наводки дали, но это не всегда и не везде.
    Посему наверное единственный универсальный вариант - наличие третьей стороны (сервера). Остальное - уже по вкусу:
    - все взаимодействия через сервер (типа Hamachi, ammy и т.п.)
    - сервер работает только сводником (торренты)
    Ответ написан
  • Какую посоветуете базу данных с динамическим набором полей?

    @d-stream
    Готовые решения - не подаю, но...
    Тут как бы одно из двух - либо достаточно жесткую регулярность в виде классических таблиц с жестко задекларированными полями (что дает возможность строить специфичные хинты для поиска, отбора, сортировки - индексы), либо получать некую "гибкость", но теряя возможности регулярных операций.

    На мой взгляд озвученная задача вполне вписывается в классику реляционных структур:
    id, порядковый номер параметра, значение параметра
    или даже
    id, порядковый номер параметра, тип параметра, значение параметра

    соответственно тогда все вкусности сортировки, группировки, агрегирования, поиска - будут доступны во всей красе
    Ответ написан
  • Как крупные справочники хранят свои данные?

    @d-stream
    Готовые решения - не подаю, но...
    Дума первый камень преткновения, который подпортит жизнь - слова длиннее 30 символов... редкость, но бывают
    Второй однокоренные слова, склонения-спряжения и прочие моментики.

    Ну и на старте - "слова" из двух слов. Типа stand up, catch up, come across, sit down, be left
    Притом половина таких глаголов "по частям" - может иметь самостаятельный смысл типа stand, up - встать, вверх, а часть - увы. К примеру be left
    Ответ написан
    Комментировать
  • Домашний "сервер" из ноутбука?

    @d-stream
    Готовые решения - не подаю, но...
    C учетом того, что народ подобное запускает на девайсах чуть мощнее бухгалтерского калькулятора - вполне потянет все кроме воспроизведения и рекодинга видео.
    Ответ написан
  • Можно ли использовать WHERE IN в запросах MySQL с набором полей?

    @d-stream
    Готовые решения - не подаю, но...
    Не проще ли сделать left join ?
    Ответ написан
  • Как выполнить такой SQL запрос?

    @d-stream
    Готовые решения - не подаю, но...
    Ничего не надо, просто переводим:

    field_id = 805312 и field_value = 1417294800, и запись с field_id=805316 и field_value=2126254.

    в
    where
    (field_id = 805312 and field_value = 1417294800)
    or
    (field_id=805316 и field_value=2126254)

    Скобки лишь для акцентов
    Ответ написан
    Комментировать
  • Создание элемента - какая схема лучше?

    @d-stream
    Готовые решения - не подаю, но...
    Как-то на практике чуть удобнее получается нечто типа 2 еще и с объединенным функционалом в виде create or update в "полунеявном" виде.

    То есть если объект не имеет UID, то при сохранении - это явный знак, что он "новый" и надо insert, есть - значит update

    Первый подход - получается двухшаговым, с отсутствием гарантии наличия второго шага. Грубо пользователь захотел создать новую запись - она создалась с дефолтами, а потом пользователь выключил комп...
    В итоге в базе наплодится гора "пустых записей".
    Ответ написан
    Комментировать
  • Использовать var или объявлять тип явно?

    @d-stream
    Готовые решения - не подаю, но...
    На мой взгляд там, где тип известен - все-таки явное указание типа будет лучше.

    Мой взгляд собственно вырос из эксплуатации как жестко типизированных языков так и совсем нетипизированных, где можно было написать где-нибудь в редкой ветке
    x="qqq"
    а потом где-то забабахать цикл
    for(x=0, x=x+1, x<10)

    и в итоге в рантайме словить редкую ошибку -)
    Ответ написан
  • Как найти строку, длинна которой максимально близка нужной?

    @d-stream
    Готовые решения - не подаю, но...
    Гм...

    abs(length-5) - величина отклонения от искомого
    соответственно нам надо найти позицию с самым маленьким отклонением
    вот и сортируем позиции по возрастанию отклонения
    и берем первую
    select top 1 
    id, word, length 
    from words 
    order by abs(length - 5) asceding

    написал top 1 в более привычном mssql в MySQL - видимо limit
    Ответ написан
    Комментировать
  • Как быстро проверить существование записи в таблице?

    @d-stream
    Готовые решения - не подаю, но...
    "в лоб" получаем записи, которые отстутсвуют в другой таблице и пихаем их в b
    insert into b (.....)
    select * from temp where temp.field not in (select distinct field from a)


    Типа "оптимальнее"
    insert into b (.....)
    select * from temp
    left join a on temp.field=a.field
    where a.field is null


    В принципе нормальный оптимизатор выполнит и первое и второе с одинаковой скоростью
    Ответ написан
    Комментировать
  • SQL Почему записи дублируются при выборке?

    @d-stream
    Готовые решения - не подаю, но...
    Как минимум join-таки описать до конца, чтобы sql знал как же именно a прицепить к p
    Ответ написан
    6 комментариев
  • Можно ли регистрировать созвучный бренду домен?

    @d-stream
    Готовые решения - не подаю, но...
    В общем случае сходность + позже бренда - почти 100% гарантия, что отберут. Особенно если наличествует совпадение направлений (сок-сок). В случае несовпадения (доброе тепло vs добрый сок) - возможно будет торг, но скорее всего будет просто непересечение.

    Если же домен появился раньше - то... смотрим историю gmail.ru например
    Ответ написан
    Комментировать
  • ИП + PayPal = касса?

    @d-stream
    Готовые решения - не подаю, но...
    Закон об онлйан-кассах во-первых касается продаж физлицам. Во-вторых - наличных и наличноподобных оплат.

    hint: На безнал кассовые чеки не выписываются -)
    Ответ написан
  • Насколько уникальным является код, если NDA запрещает использовать наработки в других проектах?

    @d-stream
    Готовые решения - не подаю, но...
    NDA в общем-то - это соглашение о неразглашении неких "секретов". Например весовых коэффицентов или коэффицентов некоего полинома для оценки чего-нибудь и т.п. То есть конкретные специфические данные, приемы, алгоритмы, формулы которые не являются публичными.
    Так же NDA может затронуть перспективные планы, сценарии и эскизы неких будущих программ.
    Ну и само собой логины-пароли-адреса внутренних серверов...
    И даже рецептура фирменных булочек в офисном буфете... и к примеру зарплаты персонала

    Все что выше - действительно секреты и может быть "закрыто nda", а вот нечто нагугленное или из документации и толкований оной - не является интеллектуальной собственностью контрагента.

    На запрет участвовать в сходных проектах - можно смело забивать, если под это условие не прилагается 500-1000 страниц юридического текста, который подробно обосновывает причины этого -)
    Ответ написан
    9 комментариев
  • Как при помощи триггеров удалить записи в связанных таблицах в ms sql server?

    @d-stream
    Готовые решения - не подаю, но...
    Про то, как без триггеров - выше уже сказали, а если-таки что-то потребуется в триггере, то следует иметь в виду, что сущности inserted, deleted - это таблицы с возможно более чем одной записью.

    Соответственно по ним надо проходится либо курсором (классика со своими подводными камнями), циклом (тоже есть свои нюансы), либо join-ом (не всегда возможно).

    По сути канва:

    ALTER TRIGGER [dbo].[t_del_test]
    ON [dbo].[s_test] INSTEAD OF DELETE
    AS
    DECLARE @id int; -- сюда будем гадить для каждой строки
    
    declare cur_for_delete cursor for select id_test from deleted; -- объявляем курсор 
    open cur_for_delete; -- открываем
    fetch cur_for_delete into  @id;   -- получаем первую строку
    while @@fetch_status=0 begin -- пока есть что получать
                DELETE FROM test_task WHERE id_test = @id;
                DELETE FROM s_test WHERE id_test=@id;
                fetch cur_for_delete into  @id; -- тянем следующую строку из курсора
    end
    close cur_for_delete; -- не забываем закрыть
    deallocate cur_for_delete


    по второму триггеру - аналогично
    Ответ написан
    Комментировать