Дубликаты реляционной таблицы - PullRequest
0 голосов
/ 24 февраля 2012

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

enter image description here

Но теперь у меня есть еще одна большая проблема, поскольку в каждом загруженном / вставленном изображении, странице, пользователе и т. Д. Есть группы / категории

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

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

категории для изображения,

category_id   category_name
1             Primary image
2             Secondary image
...

для пользователей (я дублируюТаблица категорий на изображении и просто присвойте таблице другое имя),

category_id   category_name
1             Primary user
2             Secondary user
...

И продолжайте дублировать таблицу друг на друга!

Они выглядят одинаково внутри и очень избыточно, когда мне нужно добавить новую таблицу категорий.Например, категории для таблицы contact list,

category_id   category_name
1             Primary contact
2             Secondary contact
3             School
4             government
...

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

1 Ответ

0 голосов
/ 28 февраля 2012

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

Создайте одну таблицу для каждой категории.Используйте внешние ключи.

Redundant - это технический термин в дизайне базы данных.Это не значит, что «эти две таблицы очень похожи».Это означает, что таблицы имеют одинаковые значения, и эти значения имеют одинаковое значение .

Понятно, что «Основное изображение» не имеет того же значения, что и «Основной пользователь».Но скажем, ради аргумента, что в обеих этих таблицах была строка (1, Primary).Это все еще не избыточно, потому что эти два значения имеют разные значения.В одном случае это означает, что любое изображение, помеченное им, является основным изображением.В другом случае это означает, что независимо от того, к чему пользователь прикреплен тег, это основной пользователь .Изображения не являются пользователями.Разные значения.

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