0

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

enter image description here

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

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

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

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

category_id category_name 
1    Primary image 
2    Secondary image 
... 

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

category_id category_name 
1    Primary user 
2    Secondary user 
... 

И нести на duplicatin g стол друг от друга!

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

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

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

+1

создать одну таблицу категорий и с полем типа для пользователя и изображения или обоими как 1,2,3 флаги –

+0

Может ли организация быть более чем в одной категории за раз? Нужно ли также классифицировать изображения? Могут ли категории иметь одно и то же имя для объектов различного типа (например, может ли пользователь ** и ** страница быть в той же категории)? –

+0

'Вам тоже нужно классифицировать изображения?'да, изображения должны быть категоризированы - Первичное изображение, Вторичное изображение и т. д. – laukok

ответ

0

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

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

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

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

Смежные вопросы