Зачем нужно добавлять поле идентификатора в категории товаров онлайн-базы данных покупок? - PullRequest
1 голос
/ 20 марта 2019

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

enter image description here

Ответы [ 3 ]

2 голосов
/ 20 марта 2019

Я думаю, что во многих случаях вам нужно, чтобы меню веб-сайта отображало ваши категории. Это меню позволяет людям просматривать ваши категории (Мужская одежда, Женская одежда, Дети, Аксессуары), и, щелкнув по ним, они могут увидеть соответствующие им продукты.

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

Принимая во внимание, что если у вас есть таблица категорий, вам просто нужно сохранить таблицу категорий (посмотрите, что у вас есть в таблице категорий, и обновите запись в БД, если вы хотите изменить свое меню).

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

В случае, если я пришел к выводу, что мне нужна пустая категория, которая просто отображается в меню веб-сайта (пункт меню, в котором нет товара), что невозможно, если у меня нет таблицы категорий.

1 голос
/ 20 марта 2019

Что произойдет, если я удалю таблицу категорий и добавлю название категории непосредственно в таблицу продуктов?

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

«Театр», - говорит он. Или он сказал "театр"? Что правильно? Вы проверяете и обнаруживаете, что «театр» и «театр» используются практически одинаково среди продуктов, которые имеют один из них.

Итак, какое правописание имел в виду ваш босс, что это ошибка, а какое правильное?

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

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

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

1 голос
/ 20 марта 2019

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

Первая нормальная форма (1NF) : Тип сущности имеет значение 1NF, если он содержит без повторяющихся групп данных .

Вторая нормальная форма (2NF) : тип сущности имеет значение 2NF, когда оно находится в 1NF, и , когда все его неключевые атрибуты полностью зависят от его первичного ключа.

Третья нормальная форма (3NF) : тип сущности имеет значение 3NF, когда он находится в 2NF, и , когда все его атрибуты напрямую зависятна первичном ключе.

Источник

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