Как представить дизайн базы данных? - PullRequest
8 голосов
/ 21 ноября 2010

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

В каком виде я должен представлять этот дизайн? Просто список таблиц и контента? В ERD? Как вы представляете свои проекты?

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

Ответы [ 5 ]

5 голосов
/ 21 ноября 2010

ERD - единственный путь.Как говорится, картинка стоит тысячи слов.

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

Что касается инструментов, ничто не сравнится с ErWin, но это действительно дорого и доступно только для Windows.Visio широко распространена в корпоративной среде, но доступна только для Windows и не совсем дешева.Маки предлагают несколько действительно хороших инструментов для построения диаграмм;большинство из них не бесплатны.

Dia - приличный, бесплатный и кроссплатформенный инструмент для построения диаграмм.Это немного странно, хотя;и у меня не было большого успеха, чтобы диаграммы выглядели так хорошо, как я хочу, чтобы они выглядели.

Для MySQL я играл с fabFORCE dbDesigner , и это не плохо, но я нашелв то время его поддержки для нескольких предметных областей немного не хватало - возможно, они улучшили его с тех пор.Но он бесплатный и работает в Windows и Linux.

Для настоящей презентации я создаю изображения из этих инструментов создания диаграмм и перетаскиваю их в программное обеспечение для презентаций (PowerPoint, KeyNote или OpenOffice Impress).Эти презентации могут быть экспортированы в PDF и распространены среди аудитории;им не понадобится ничего, кроме средства просмотра PDF, чтобы просмотреть информацию позже.

4 голосов
/ 21 ноября 2010

Давайте посмотрим на это с точки зрения вашего профессора. Если бы я был им / ей:

Я бы потребовал ERD. Без этого я не могу увидеть одну из самых фундаментальных проблем проектирования базы данных, как связаны таблицы.

Я также ожидал бы некоторые основные варианты использования / требования. Какие проблемы вы пытаетесь решить с помощью этой базы данных?

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

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

Если бы я использовал SQL Server, я бы, вероятно, создал диаграмму в SSMS для отображения некоторой базовой ERD. Visio также можно использовать. Я мог бы использовать Visio для создания своих вариантов использования или, возможно, Microsoft Word.

1 голос
/ 23 ноября 2010

Зависит от аудитории.ERD, конечно, не единственный ответ и, возможно, не лучший.Вы должны выбрать среду, которую ваша аудитория поймет.

1 голос
/ 21 ноября 2010

mysql workbench сделает вас красивой графикой для презентации среди многих других сложных функций.

1 голос
/ 21 ноября 2010

Не забудьте обсудить аспекты дизайна, которые не соответствуют ERD:

1) как отношения наследования / агрегации из вашей аналитической модели реализованы в вашей базе данных.

2) как вы собираетесь поддерживать иерархии ваших объектов в rdb (если есть)

3) перечислить отношения, которые есть в вашей аналитической модели, но не поддерживаются проектом rdb.

4) ETL-процесс, отслеживание изменений, отслеживание изменений схемы, безопасность на основе ресурса.

5) аспекты разделения и обслуживания хранилища (одна из целей оптимизировать время резервного копирования)

6) в тесте prod (данные тестового острова) и простое клонирование БД для тестовой среды

...