Разработка базы данных для спецификации - PullRequest
0 голосов
/ 28 апреля 2011

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

Группа определилась с восьмистраничной спецификацией, в которой есть "пробелы" для по крайней мере ста отдельных значений.Несколько наборов значений отображаются в табличном формате.Если значение не указано, оно не распространяется на данный продукт.Каждое поле будет иметь определенный тип данных.Представлены все поля со следующими типами данных: целые числа, десятичные числа, справочный список, текст, дата и логическое значение.

База данных также должна отслеживать предыдущие изменения.

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

Вариант 1. Одна или несколько таблиц «один-к-одному»

  • Одна большая таблица с «ID» и «Rev» в качестве первичного ключа..
  • Активная ревизия как ревизия с самой последней датой «подтверждено».
  • Если число полей превышает лимит СУБД, разбейте таблицу на несколько полей «один к одному», каждое из которых имеет«ID» и «Rev» в качестве первичного ключа.

Вариант 2: Entity-value

  • Основная таблица (ID, Rev)
  • Для каждого типа данных:
    • <data_type> _категория таблицы, описывающая каждое поле этого типа данных
    • <data_type> _значение таблицы (ID, Rev, категория, значение) для каждого экземпляразначение

Опция?: Любая идея, которую вы придумали ...

Примечание: Если применимо, я пLAN для использования MS-Access для всего проекта (форм, таблиц, запросов и отчетов).У нас также есть SQL Server и подписка MSDN, так что, если вы настоятельно рекомендуете, это вариант

РЕДАКТИРОВАТЬ:

  • Это будет собственная база данных.
  • У нас около 150 спецификаций, и я ожидаю около одной новойпересмотр каждой спецификации в год.
  • Скорее всего, я буду вести эту базу данных по мере возникновения проблем.
  • Приблизительно пять человек должны иметь возможность создавать и обновлять спецификации и редакции.
  • ПриблизительноДвадцать пять сотрудников получат данные из этой базы данных (отчеты о печати, спецификации поиска и т. д.)

EDIT2: (разъяснения для HansUp)

  • Я пересмотрю использование полей поиска и рассмотрю другие варианты (создание другой таблицы, текстовые значения и т. Д.)
  • Под «каждым полем будет свой тип данных», я имел в виду, что каждое поле (или «пустое»)) будет иметь соответствующий тип данных.Например, MAX_CHAMBER_PSI всегда будет целочисленным значением, PERFORM_TEMPERATURE_TEST всегда будет Да / Нет, а REVISION_REASON всегда будет строкой.
  • Количество пользователей является лишь приблизительным.Около пяти пользователей будут иметь доступ к созданию / обновлению, и около двадцати пяти дополнительных пользователей смогут только читать данные.В форме form_load я просто планировал скрыть элементы управления и обновить свойства в зависимости от пользователя, вошедшего в систему.

EDIT3: Сводка:

Мы разработали специальный отчет с~ 100 полей все зависят от SpecID и Rev для определения приемлемого диапазона для различных атрибутов наших продуктов.

В настоящее время спецификации пишутся от руки в отчете и хранятся в шкафу для хранения документов.Кроме того, копия последней версии каждой спецификации предоставляется в подшивке на каждом испытательном стенде.

Как мне моделировать первичный ключ с примерно сотней атрибутов, что превышает ограничение для столбцов в MicrosoftТаблица доступа?

Ответы [ 2 ]

1 голос
/ 29 апреля 2011

Мой совет: выбери вариант №1.№ 2 будет на порядок сложнее, и, вероятно, он не нужен для вашей ситуации.# 2 может быть оправдано, если вы позволите каждому пользователю определять свои собственные поля, но я не понимаю этого из вашего описания.

Ваша спецификация - это просто объект с 100 полями.Моделировать его как «контейнер» из 100 «полевых объектов» - это слишком излишне.

1 голос
/ 29 апреля 2011

Я бы порекомендовал подход «сущностная ценность», основанный на моем опыте, когда я пытался сделать подобные вещи «простым» способом (легко спроектировать плоскую структуру данных, но работать с данными не так просто)1001 *

Взгляните на Шаблон базы данных Duane Hookum's At Your Survey .Я не использовал это сам, но я видел, что это обсуждалось подробно, и, кажется, он использует этот подход.

...