Объектно-ориентированное расположение таблиц в SQL - PullRequest
0 голосов
/ 17 сентября 2018

В моем случае я хочу сделать простой реестр активов.

Все элементы будут иметь серийный номер / номер модели, описание, дату покупки, все еще активны и т. Д.

Но некоторые элементы будут иметь дополнительные данные о них, например, телефоны будут иметьНомер IMEI и номер телефона, длина контракта.Ноутбуки будут иметь серийный номер ОС.Транспортные средства будут иметь регистрацию, VIN, MOT / Дата обслуживания.У заводского оборудования будет дата калибровки

То, что я ищу (я думаю), - это способ создания объектно-ориентированных таблиц, поэтому все объекты являются активом, и каждый тип также имеет свои собственные характеристики.

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

ERD

1 Ответ

0 голосов
/ 17 сентября 2018

Способ сделать это в реляционной базе данных - это иметь отношение M: N между активом и «свойствами» или материалом, который вы хотите включить.

Затем вы нормализуете его с помощью среднего стола 1: N: 1.

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

Смотрите картинку здесь: enter image description here

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...