Выбор таблицы в mysql

У меня есть база данных mysql и несколько таблиц.

Одна таблица - Товары: ее столбцы - prod_id, prod_type.

Prod_types - это mobile, laptop или book.

Каждый из них имеет разные атрибуты (например: издатель, автор книг, battery_condition, модель ноутбука и т. д.).

Должен ли я хранить все данные в таблице Товары, добавляя столбцы, такие как «автор», «модель» и т. д., И оставлять ноль для тех столбцов, которые не относятся к моему продукту.

Например, для записи с prod_type='book' параметры 'model', 'batter_condition' и т. д. Будут нулевыми. Или мне следует создать разные таблицы для «книжки», «мобильного» и «ноутбука»?

Добро пожаловать в SO. Приведите минимальный, полный и поддающийся проверке пример. Покажите нам код вашей последней попытки и где ты застрял. и объясните, почему результат не такой, как вы ожидали. stackoverflow.com/help/mcve Пожалуйста, постарайтесь изложить свой вопрос так, чтобы другие люди могли его прочитать. В нынешнем виде вам вряд ли помогут, поскольку люди не смогут понять, что вы написали.

Dragonthoughts 04.09.2018 12:52

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

Dragonthoughts 04.09.2018 12:53

Прочтите ответы на stackoverflow.com/questions/386652/…, в которых подробно описаны несколько подходов, их плюсы и минусы.

Matt Raines 04.09.2018 18:46
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
В предыдущем посте мы создали функциональность вставки и чтения для нашей динамической СУБД. В этом посте мы собираемся реализовать функции обновления...
Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
Роли и разрешения пользователей без пакета Laravel 9
Роли и разрешения пользователей без пакета Laravel 9
Этот пост изначально был опубликован на techsolutionstuff.com .
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
0
3
43
1

Ответы 1

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

Хранение всех данных в продуктах приведет к появлению большого количества полей NULL и сделает хранение данных неэффективным.

Другие вопросы по теме