Рекомендации, необходимые для организации базы данных продуктов

#sql #python-3.x #flask #database-design

Вопрос:

Я действительно новичок в базах данных, так что заранее приношу свои извинения. Я работаю над частным приложением flask для заказа продуктов. У меня есть таблица клиентов (с идентификатором клиента) и таблица всех продуктов для продажи (уникальные коды продуктов), которые кажутся прямыми. Существует третья таблица с вариантами продуктов (опять же, с уникальными кодами), которые настроены с логотипом клиентов.

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

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

Любые общие советы или предложения были бы огромной помощью! Спасибо.

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

1. Что делать, если у клиента несколько настроек?

2. Таким образом, они могут заказать 30 уникальных продуктов в одном заказе, 10 из которых доступны только в соответствии с их логотипом. Это зависит от клиента и ежегодных расходов, имеют ли они право на товары с их логотипом, чтобы они могли расти или снижаться.

3. Если я правильно понимаю описание вашей проблемы, каждый продукт имеет индивидуальные отношения с индивидуальным продуктом. Внешний ключ от продукта к настроенному продукту должен позволять вам получать настроенный продукт из продукта.

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

Ответ №1:

Поэтому я думаю, что в основном решил проблему благодаря комментаторам. Я понял, что мне нужно настроить некоторые согласованные ссылки/идентификаторы в моих таблицах, чтобы соединить все так, как мне это тоже нужно. Ниже приведен очень грубый быстрый макет для записи отношений в базе данных. Игнорируйте тот факт, что все типы данных случайны, если у кого-то есть какие-либо дополнительные комментарии, которые были бы замечательными, но в остальном я думаю, что медленно разбираюсь в этом. Базовый дизайн БД