Ответы пользователя по тегу Базы данных
  • БД и Микросервис в одном pod, но разных контейнерах - хорошо или нет?

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

    А вот база данных - долговременное (постоянное, надёжное) хранение данных. Если говорить о популярных реляционных СУБД, то на сегодня это с большой вероятностью - postgress
    То что касается "изоляции" данных разных микросервисов - у него уже всё есть. К примеру в его терминах "каждому микросервису по базе данных" - это "каждому микросервису по схеме" (ибо БД растяжимое понятие и database в терминах pg - это чуть иное) притом естественно к каждой схеме отдельная УЗ (роль)
    Ответ написан
    7 комментариев
  • Как правильно хранить тексты постов в БД?

    @d-stream
    Готовые решения - не подаю, но...
    можно заглянуть в движки популярных форумов типа invision powerboard, phpbb и т.п.
    там давно уже выстроилась "косоплечая" конструкция хранения html с тэгами bbcode в комментариях - чтобы при редактировании сообщения вернуть назад bbcode, а не чистый html
    Ответ написан
    Комментировать
  • Почему не надо редактировать данные БД через xlsx документ?

    @d-stream
    Готовые решения - не подаю, но...
    Типичнейший кейс: редактирование базовых цен, групп и т.п. прайса.
    Притом инструмент работающего с таковым должен уметь работать не только с excel, но и с другими форматами. И обладать достаточной гибкостью. Причина проста: средний сервис/магазин зч оперирует миллионами номенклатурных единиц (кодами з/ч), оные коды и политика ценообразования зависят от поставщика - т.е. один шлёт в excel код детали - цена - категория скидки - мин партия - срок, другой выгружает остаток склада в виде код-наименование-кол-во-цена, третий валит tab delimited прайс в у.е. и так далее.
    Ручками такое никто набивать-перебивать-сверять не будет. А поставщик, особенно эксклюзивный - пошлёт искать на рынке другого поставщика)
    Ну и да... зачастую ещё одни и те же запчасти могут иметь несколько разное кодирование под разные рынки-регионы)

    В итоге сидит чел, тащит из зоопарка присылаемого в excel (например через мастер импорта) данные, сводит их к более-менее единообразному тасуя колонки, пересчитывая ндс и валюты. И потом хотел бы не выверять csv глазами на предмет затесавшегося "Болт М5; резьба1,5 мм" на котором импорт csv упадёт хоть с comma delimiter, хоть с semicilon ))))))))
    Ответ написан
    Комментировать
  • Как посмотреть содержание data base файла?

    @d-stream
    Готовые решения - не подаю, но...
    database file - это файл какой-то базы данных)
    Осталось выяснить какой именно, ну чтобы не пытаться открывать это mp3 плеером)
    Имеющий перспективу вариант: любым hex просмотрщиком смотреть так называемую сигнатуру файла (первые 3-5 байт) и по этой сигнатуре искать что же это за субд. Если это не что-то внутрихуавеевское - то есть шанс.
    Ответ написан
  • Стоит ли создавать таблицу в БД, в которой будет заведомо фиксированное кол-во записей?

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

    Страна - может разделится, может сменить свой код, наименование, в комбобоксе выбора места немного и ОАЭ там выглядит гармоничнее чем "Объединённые Арабские Эмираты" , а вот в карточке фильма - наоборот.
    Плюс страны могут могут объединяться смысловыми понятиями - азиатские фильмы, европейские и т.п.

    С жанрами и поджанрами - та же фигня.

    Итого как минимум (который можно юзать сразу или прийти к нему итеративно):
    - id
    - краткое наименование
    - полное наименование
    - картинка (например имя файла флага страны)
    - порядок сортировки (возможно даже несколько порядков)
    Ответ написан
    Комментировать
  • Где хранить данные, в БД или файлах?

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

    Впрочем я могу подкинуть и гибридные промышленные дорогие решения где есть и орландо и редис и файлы)
    Ответ написан
    Комментировать
  • Какую простейшую складскую систему посоветуете?

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

    для затравки: Total Network Inventory, OCS и т.п.
    Ответ написан
    Комментировать
  • Существуют ли безсхемные реляционные базы данных?

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

    А вообще схема - это и есть отношения aka relation и поэтому реляционная БД в любом случае подразумевает схему, но можно их держать виртуально в голове, а не использовать механизмы БД для этого - получим реляционную БД без реляций)
    Естественно последнее сродни обману таксиста - оплатить поездку, но не поехать)
    Ответ написан
    Комментировать
  • Как создать большую фейковую базу данных для разработки приложения?

    @d-stream
    Готовые решения - не подаю, но...
    например на .NET есть bogus преспокойно описываются требуемые сущности и их вариации и вперед - заливать в базу
    Ответ написан
    Комментировать
  • Что такое курсор (cursor) в базах данных?

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

    Почти всегда можно вместо курсора использовать временную таблицу (локальную, глобальную, memory)
    Ответ написан
    Комментировать
  • Хранить удаленные строки через deleted_at или отдельную таблицу?

    @d-stream
    Готовые решения - не подаю, но...
    Это ноги растут из dbase, где удаление не было удалением как таковым?
    В чем видится недостаток чистого delete средствами СУБД?
    Ответ написан
  • Есть программа для создания структуры базы данных на основе существующей?

    @d-stream
    Готовые решения - не подаю, но...
    Старый, добрый erwin
    Ответ написан
    Комментировать
  • Как выбрать базу данных для интернет магазина строительных материалов?

    @d-stream
    Готовые решения - не подаю, но...
    Посоветуйте что выбрать.
    Выбирайте специалиста, который имеет опыт - он обоснует что надо и почем. Естественно небесплатно. Но это все в конечном итоге будет в разы дешевле самообразования в строительстве велосипедов для езды по граблям.
    Ответ написан
    Комментировать
  • Какие из современных СУБД содержат средства ввода/вывода?

    @d-stream
    Готовые решения - не подаю, но...
    Например про MS SQL:
    Обычно такое выносится в виде отдельных инструментов, как например SQL Server Import Wizard для скорее интерактивного или же bcp для пакетного. Ну и есть и внутри начиная от bulk и заканчивая Data Transformation Service. И само собой sqlcmd - прямо stdin/stdout/stderr по классике.

    Остальные - умеют плюс-минус то же самое и чаще всего из коробки (разве что dts не все)

    В чем вопрос-то?
    Ответ написан
    Комментировать
  • NULL в полях БД, а нужно?

    @d-stream
    Готовые решения - не подаю, но...
    Умножение -более затратная операция чем сложение. Но это совсем не повод использовать сложение вместо умножения. В общем перефразируя профессора Преображенского - не надо читать такие статьи.
    Ответ написан
    Комментировать
  • Как правильно реализовать реагирование на изменение записи в таблице БД?

    @d-stream
    Готовые решения - не подаю, но...
    Самая "конечная" точка - триггеры. То есть например в момент реально финализировавшейся транзакции. Но от триггера "прогнать наверх" это событие - сильно зависит от архитектуры взаимодействия. Если есть некая таблица в БД, реализующая очередь уведомлений - то тогда можно триггером добавлять в нее это самое событие изменения... ну а дальше когда-то это уведомление будет вынуто из очереди и отправлено.
    Ответ написан
    5 комментариев
  • Создание записей в связанных таблицах - через MySQL триггеры или в коде приложения?

    @d-stream
    Готовые решения - не подаю, но...
    Третий вариант: stored procedure[s]* - на входе получающая нужные данные для добавления/изменения, которая уже в рамках транзакции выполнить проверки-записи-вычисления... притом тогда "магию" подвязанных к профилю контактов (еще таблички уже не 1:1) можно спрятать там же... так же как уведомления о смене чувствительных данных, логгирования и еще чего-нибудь потенциально нужного... притом последнее - собственно не потребует ничего менять за пределами такой процедуры.
    Ответ написан
  • Как лучше сохранять в базу данных номера телефонов?

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

    Тогда получится универсальная схема, способная показывать номера в привычном пользователям формате по маске и не захламленная спецификой межзоновых, междугородних и международных кодов.

    То есть для РФ +7 (900) 100-00-00 , +7 (8765) 22-99-99, + 7 (876-55) 5-25-25, а эти же номера для немца окажутся 007 900 1000000, 007 876 5229999, 007 876 5552525,

    а для усть-урюпинска - могут быть как:

    8 900 100-00-00, 8-2 22-99-99 и 5-25-25

    хотя в базе - это будет 3+ поля

    в принципе хранить имеет смысл как int, а для "хитростей" поиска по частичным маскам - просто держать вычисляемые поля, где номер кастится к [n]varchar
    Ответ написан
    Комментировать
  • Правильно ли организован бэкап коллекций в БД?

    @d-stream
    Готовые решения - не подаю, но...
    Вполне нормально, особенно для работы с БД.
    А сущности в памяти (и на экране) тогда соответственно могут быть изменены/удалены(помечены)/добавлены, что позднее "разветвит" их поведение (в конечном итоге update / delete / insert)
    Ответ написан
    Комментировать
  • Стоит ли в данном случае использовать табличные функции вместо LINQ to SQL?

    @d-stream
    Готовые решения - не подаю, но...
    Как уже отметили linq2sql в данном случае как морская свинка (не в море и не хрюкает).
    И самое главное прилетает это в sql так, что планировщик/оптимизатор оказывается в затруднении.

    Как итог - потеря производительности.

    Посему правильный путь - построение хранимых процедур и linq-оперирования с уже отобранными оптимальным образом результатами выполнения процедур.

    Это может показаться не по-книжке и не по феншую теоретических измышлений, но эффективно.
    Ответ написан
    Комментировать