Контакты

Достижения

Все достижения (1)

Наибольший вклад в теги

Все теги (16)

Лучшие ответы пользователя

Все ответы (30)
  • Какую БД лучше всего использовать для хранения 100 млн записей и больше?

    Добрый день. СУБД под ваши нагрузки и правда можете выбирать любую. Лишь бы секционирование таблиц поддерживало. Postgres- очень хороший выбор. Есть нюанс Postgres, в некоторых случаях, может зависит от прямоты рук(т.е. как вы составите sql запрос). Как и у любой другой БД, есть свои особенности, с которыми вы можете встретиться, а можете не встретиться.
    Ключ category+key вместо ID - не очень хорошая идея. Хотя бы поскольку только category имеет 100 символов, еще и key в придачу явно не пустой. Т.к. это первичный ключ по ним будет построен индекс. Ну и представьте, как будут выглядеть листовые блоки в индексах- при поиске в индексе нужного ключа придется по-битово сравнить 100 символов. Не критично, но идея не очень.
    Если category повторяется- нормализуйте таблицу(Т.е. значения category вынесите в отдельную таблицу(сущность)) и в таблице MainTable храните внешний ключ(id ключа).
    Смысла в поле key не вижу.
    Ответ написан
    1 комментарий
  • Как в Oracle или Teradata разбить все строки таблицы на N равновеликие СЛУЧАЙНЫЕ выборки?

    select t1. *, ntile(N) over (order by dbms_random.random) nbatch  from t1

    А дальше выбираете нужные части nbatch.
    ntile в Oracle используется для построения гистограмм, поэтому +/- должен работать быстро.
    Ответ написан
    Комментировать
  • Как максимально быстро найти точку на верном пути прохождения лабиринта?

    Дополню ответ Сергей .
    Алгоритм Флойда-Уоршалла оперирует при расчете расстояниями между 3мя точками и матрицу надо будет всю просчитывать. Алгоритм Беллмана-Форда в основном применяют для графов с отрицательными весами у ребер- он ищет циклы, применение его на этом примере- ну такое. Алгоритм Дейкстры использует обход в ширину(BFS), т.е. просчитывает весь граф просто с положительными весами в отличии от Беллмана-Форда.
    Поэтому если вам не важен оптимальный путь(читай кратчайший), то воспользуйтесь обходом графа в глубину(DFS)- он в среднем быстрее скажет дойдете ли вы, т.е. за минимальное кол-во проверок при поиске.
    Ответ написан
    Комментировать
  • Как вы храните/генерируете нумерацию документов?

    Можно воспользоваться функциями\функцией, которые генерирует номер для каждого типа документа включая дату, если необходимо, то хранить версию документа.
    К примеру, номер документа для выделенной строки на скриншоте ид = 1156, может выглядеть 338-ПП-21-31012019(дата создания) -01(версия).
    В принципе, опытный пользователь до открытия может сказать, о чем документ.
    Ответ написан
    2 комментария
  • UPDATE или DELETE нарушает ограничение внешнего ключа?

    Судя по тексту, у тебя в таблице "ticket_flights" есть записи из tickets(т.е. есть связь между ticket_flights и tickets), поэтому чтобы удалить что-то в таблице tickets нужно сначала удалить из ticket_flights. А таблица bookings как будто не причем.
    Ответ написан
    Комментировать