Более 50 различных категорий, которые разделяют 50% атрибутов. Как эффективно создать все эти таблицы в базе данных sql? [закрыто]

0

Вопрос

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

Каждая категория имеет множество атрибутов - столбцов, все эти категории имеют одинаковое количество столбцов в 50%. Например, у каждой категории есть (идентификатор, имя, дата, штат, администратор, отдел), все категории имеют эти атрибуты, но у каждой категории есть свои собственные атрибуты, которые отличаются друг от друга, их около 3-5 атрибутов.

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

sql sql-server
2021-11-24 02:49:24
2

Лучший ответ

3

Зависит от того, чего именно вы пытаетесь достичь.

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

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

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

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

2021-11-24 03:16:08
-1

Поскольку некоторые атрибуты применимы только к некоторым категориям, вы можете подумать о модели "Сущность-атрибут-значение" для хранения категорий.

Существует несколько способов представления моделей EAV в базе данных. Вы можете обратиться к приведенной ниже статье: https://inviqa.com/blog/understanding-eav-data-model-and-when-use-it

Способ хранения данных модели EAV сталкивается со своими собственными проблемами при запросе базы данных. Итак, посмотрите, будет ли это соответствовать вашим потребностям, прежде чем выбирать то же самое.

2021-11-24 03:29:20

На других языках

Эта страница на других языках

Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................

Популярное в этой категории

Популярные вопросы в этой категории