Лучше ли использовать varchar для одной подкатегории, которая имеет несколько значений?

#mysql #database #database-design #relational-database

#mysql #База данных #база данных-дизайн #реляционная база данных

Вопрос:

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

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

  1. Используйте ENUM . Однако я прочитал несколько тем об ее использовании, которые могут быть проблематичными, и почти исключил эту.

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

  3. Используйте varchar и вводите значения цвета вручную, что потенциально может привести к вводу неправильных входных значений, но к экономии производительности?(Вопросительный знак, потому что я понятия не имею о производительности в базах данных.)

Если бы я мог получить несколько мнений, я был бы признателен! Заранее благодарю вас!

Комментарии:

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

2. Обычно вы должны поместить эти параметры в отдельную таблицу и использовать отношение «один ко многим» или «многие ко многим».

3. Создайте инструкции INSERT and SELECT для каждой реализации. Это упражнение может привести вас к принятию собственного решения.