Найдено результатов: 11

Автогенерация Диаграммы Базы Данных MySQL

Я устал открывать Dia и создавать схему базы данных в начале каждого проекта. Есть ли там инструмент, который позволит мне выбрать определенные таблицы, а затем создать схему базы данных для меня на основе базы данных MySQL? Предпочтительно, чтобы это позволило мне отредактировать диаграмму позже, так как ни один из внешних ключей не установлен...

Вот что я представляю себе схематично (пожалуйста, извините за ужасный дизайн данных, я его не проектировал. Давайте сосредоточимся на концепции диаграммы, а не на фактических данных, которые она представляет для этого примера ;) ):

diagram см. полноразмерную диаграмму

mysql   database   database-design   diagram    

671   14   16:03, 1st July, 2020


Автогенерация Диаграммы Базы Данных MySQL

Я устал открывать Dia и создавать схему базы данных в начале каждого проекта. Есть ли там инструмент, который позволит мне выбрать определенные таблицы, а затем создать схему базы данных для меня на основе базы данных MySQL? Предпочтительно, чтобы это позволило мне отредактировать диаграмму позже, так как ни один из внешних ключей не установлен...

Вот что я представляю себе схематично (пожалуйста, извините за ужасный дизайн данных, я его не проектировал. Давайте сосредоточимся на концепции диаграммы, а не на фактических данных, которые она представляет для этого примера ;) ):

diagram см. полноразмерную диаграмму

mysql   database   database-design   diagram    

560   14   16:03, 1st July, 2020


Каковы преимущества использования единой базы данных для EACH клиента?

В ориентированном на базу данных приложении, которое предназначено для нескольких клиентов, я всегда думал, что "better" будет использовать единую базу данных для ALL клиентов-связывая записи с соответствующими индексами и ключами. Слушая подкаст Stack Overflow, я услышал, как Джоэл упомянул, что FogBugz использует одну базу данных на клиента (так что если бы было 1000 клиентов, то было бы 1000 баз данных). Каковы преимущества использования этой архитектуры?

Я понимаю, что для некоторых проектов клиентам нужен прямой доступ ко всем их данным - в таком приложении очевидно, что каждому клиенту нужна своя база данных. Однако для проектов, где клиенту не нужно обращаться непосредственно к базе данных, есть ли какие-либо преимущества в использовании одной базы данных на клиента? Кажется, что с точки зрения гибкости гораздо проще использовать единую базу данных с одной копией таблиц. Проще добавлять новые функции, легче создавать отчеты и просто легче управлять ими.

Я был довольно уверен в методе "one database for all clients", пока не услышал, как Джоэл (опытный разработчик) упомянул, что его программное обеспечение использует другой подход, и я немного смущен его решением...

Я слышал, как люди цитируют, что базы данных замедляются с большим количеством записей, но любая реляционная база данных с некоторыми достоинствами не будет иметь этой проблемы - особенно если используются правильные индексы и ключи.

Любой вход очень ценится!

database   database-design   multi-tenant    

490   10   00:53, 15th August, 2020


Триггеры базы данных

В прошлом я никогда не был поклонником использования триггеров в таблицах базы данных. Для меня они всегда представляли собой некий "magic", который должен был произойти на стороне базы данных, далеко - далеко от контроля моего кода приложения. Я также хотел ограничить объем работы, которую должен был выполнять DB, поскольку это обычно общий ресурс, и я всегда предполагал, что триггеры могут быть дорогостоящими в сценариях с высокой нагрузкой.

Тем не менее, я нашел несколько примеров, когда триггеры имели смысл использовать (по крайней мере, на мой взгляд, они имели смысл). Однако недавно я оказался в ситуации, когда мне иногда может понадобиться "bypass" спусковой крючок. Я чувствовал себя очень виноватым из-за необходимости искать способы сделать это, и я все еще думаю, что лучший дизайн базы данных облегчил бы необходимость этого обхода. К сожалению, этот DB используется несколькими приложениями, некоторые из которых поддерживаются очень несговорчивой командой разработчиков, которая кричала бы об изменениях схемы, поэтому я застрял.

Что там за общий консесус насчет триггеров? Любишь их? Ненавидеть их? Думаете, они служат какой-то цели в некоторых сценариях? Считаете ли вы, что необходимость обойти триггер означает, что вы "делаете это неправильно"?

sql-server   database-design   triggers    

584   12   03:36, 23rd August, 2020


Когда файл-это просто файл?

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

Мой вопрос заключается в следующем: должна ли быть другая таблица для каждого "type" файла? Кроме того, следует ли хранить файлы в контекстно-зависимых местах на сервере или все вместе?

Несколько примеров: фотографии профиля пользователя, работа приложений CVs, документов на страницах CMS и т. д.

database-design    

393   4   13:31, 5th August, 2020


Запрос таблицы объединения с полями в виде столбцов

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

У меня есть три основные таблицы: Card, Property и CardProperty. Поскольку карты не имеют одинаковых свойств и часто имеют несколько значений для одного и того же свойства, я решил использовать подход union table для хранения данных вместо того, чтобы иметь действительно большую структуру столбцов в моей карточной таблице.

Таблица свойств-это базовая таблица типов ключевых слов и значений. Таким образом, у вас есть ключевое слово ATK и значение, присвоенное ему. Существует еще одно свойство, называемое SpecialType, для которого карта может иметь несколько значений, например "Sycnro" и "DARK"

Я бы хотел создать представление или хранимую процедуру, которая дает мне идентификатор карты, имя карты и все ключевые слова свойств, назначенные карте в виде столбцов, и их значения в ResultSet для указанной карты. Поэтому в идеале у меня был бы результирующий набор, например:

ID  NAME                   SPECIALTYPE
1   Red Dragon Archfiend   Synchro
1   Red Dragon Archfiend   DARK
1   Red Dragon Archfiend   Effect

и я мог бы подсчитать свои результаты таким образом.

Я думаю, что даже slicker будет просто объединять свойства вместе на основе их ключевого слова, поэтому я мог бы создать ResultSet как:

1  Red Dragon Archfiend   Synchro/DARK/Effect
..

но я не знаю, возможно ли это.

Помогите мне stackoverflow Кеноби! Ты моя единственная надежда.

sql   database-design   stored-procedures    

407   5   04:32, 23rd August, 2020


Какова наилучшая стратегия сохранения больших наборов данных?

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

Какова наилучшая стратегия для решения этой ситуации? Просто архивировать старые данные в другую таблицу? Или "roll it up" через некоторую консолидацию самих данных (а затем сохранить его в другую таблицу)? Или что-то совсем другое?

Дополнительная информация: мы используем SQL Server 2005.

database-design   dataset    

414   5   02:39, 13th August, 2020


Запрос таблицы объединения с полями в виде столбцов

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

У меня есть три основные таблицы: Card, Property и CardProperty. Поскольку карты не имеют одинаковых свойств и часто имеют несколько значений для одного и того же свойства, я решил использовать подход union table для хранения данных вместо того, чтобы иметь действительно большую структуру столбцов в моей карточной таблице.

Таблица свойств-это базовая таблица типов ключевых слов и значений. Таким образом, у вас есть ключевое слово ATK и значение, присвоенное ему. Существует еще одно свойство, называемое SpecialType, для которого карта может иметь несколько значений, например "Sycnro" и "DARK"

Я бы хотел создать представление или хранимую процедуру, которая дает мне идентификатор карты, имя карты и все ключевые слова свойств, назначенные карте в виде столбцов, и их значения в ResultSet для указанной карты. Поэтому в идеале у меня был бы результирующий набор, например:

ID  NAME                   SPECIALTYPE
1   Red Dragon Archfiend   Synchro
1   Red Dragon Archfiend   DARK
1   Red Dragon Archfiend   Effect

и я мог бы подсчитать свои результаты таким образом.

Я думаю, что даже slicker будет просто объединять свойства вместе на основе их ключевого слова, поэтому я мог бы создать ResultSet как:

1  Red Dragon Archfiend   Synchro/DARK/Effect
..

но я не знаю, возможно ли это.

Помогите мне stackoverflow Кеноби! Ты моя единственная надежда.

sql   database-design   stored-procedures    

455   5   04:09, 29th August, 2020


Одна база данных или много?

Я разрабатываю веб-сайт, который будет управлять данными для нескольких объектов. Данные не являются общими для всех объектов, но они могут принадлежать одному и тому же клиенту. Клиент может захотеть управлять всеми своими сущностями из одного "dashboard". Так что я должен иметь одну базу данных для всего, или держать данные разделены на отдельные базы данных? Есть ли лучшая практика? Каковы положительные / отрицательные стороны для того, чтобы иметь:

  • база данных для всего сайта (сущности имеет "customerID", данные имеет "entityID")
  • база данных для каждого клиента (данные "entityID")
  • база данных для каждой сущности (отношение база данных для клиента находится за пределами база данных)

Несколько баз данных, похоже, будут иметь лучшую производительность (меньше строк и соединений), но в конечном итоге могут стать кошмаром обслуживания.

performance   database-design   multi-tenant   maintainability    

551   11   03:27, 12th August, 2020


Рекомендуемый SQL дизайн базы данных для тегов или меток

Я слышал о нескольких способах реализации тегирования; использование таблицы сопоставления между TagID и ItemID (имеет смысл для меня, но масштабируется ли она?), добавление фиксированного числа возможных столбцов TagID к ItemID (кажется, это плохая идея), сохранение тегов в текстовом столбце, разделенном запятыми (звучит безумно, но может сработать). Я даже слышал, что кто-то рекомендовал разреженную матрицу, но тогда как же имена тегов растут изящно?

Я пропустил лучшую практику для тегов?

sql   database-design   tags   data-modeling   tagging    

512   6   20:55, 12th August, 2020


Эффективная стратегия для оставления истории аудита trail/изменений для DB приложений?

Назовите Некоторые стратегии, которые люди успешно использовали для ведения истории изменений данных в довольно сложной базе данных. Одно из приложений, которое я часто использую и разрабатываю, действительно может извлечь выгоду из более полного способа отслеживания изменений записей с течением времени. Например, прямо сейчас записи могут иметь ряд timestamp и измененных пользовательских полей, но в настоящее время у нас нет схемы для регистрации нескольких изменений, например, если операция откатывается. В идеальном мире можно было бы восстановить запись, какой она была после каждого сохранения, и т. д.

Немного информации о DB:

  • Необходимо иметь возможность расти на тысячи записей в неделю
  • 50-60 таблиц
  • Основные пересмотренные таблицы могут содержать несколько миллионов записей каждая
  • Разумное количество внешних ключей и индексов набора
  • Использование PostgreSQL 8.x

database   postgresql   database-design   crud   audit-trail    

523   6   00:55, 26th August, 2020