powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Товары и заказы...
6 сообщений из 6, страница 1 из 1
Товары и заказы...
    #34161037
Gorden
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вопрос такой:

Есть несколько видов категорий товаров с совершенно различными атрибутами. Для каждого вида товаров завожу отдельные таблицы. Например:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Create table ProductType1 (
   ProductType1_Id,
   name,
   size,
   old
   ....)

Create table ProductType2 (
   ProductType2_Id,
   name,
   distance,
   publisher,
   attribute13,
   ....)


Далее, есть таблица заказов:

Код: plaintext
1.
2.
Create table Orders(
   Order_Id
   ....)


Как связать таблицу заказов с товарами?
У меня пока на ум приходит следующее: Для каждого вида товара создается отдельная таблица с деталями заказов:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
Create table OrderLines_ProductType1(
   Order_Id,
   ProductType1_Id,
   .....)

Create table OrderLines_ProductType2(
   Order_Id,
   ProductType2_Id,
   .....)


Если видов товаров немного, то это терпимо, а если их сотни?

Как можно обьеденить таблицы OrderLines_ProductType1, OrderLines_ProductType2.... в одну, например OrderLines?

Какие есть стандартные решения? Спасибо :)
...
Рейтинг: 0 / 0
Товары и заказы...
    #34161139
Фотография Shtock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
собственноо задача-баян - классическая реализация наследования (последний раз по-моему обсуждалась где-то неделю назад):либо как у Вас на каждый класс объекта своя таблица,либо на все классы одна большая широкая. В вашем случае я бы сделал таблицу products, где бы хранил тип заказа (ваши producttype) и id из общей последовательности,а на него бы ссылался в таблицах producttype,а в строке заказа (orders) делал бы ссылку на id из таблицы products.

p.s. еще можно в таблице,где вы будете перечислять типы заказов сделать текстовое поле с наименованием таблицы,где хранятся заказы.
...
Рейтинг: 0 / 0
Товары и заказы...
    #34161266
NSFuimus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
Create table ProductType1 (
   ProductType1_Id,
   name,
   size,
   old
   ....)

Create table ProductType2 (
   ProductType2_Id,
   name,
   distance,
   publisher,
   attribute13,
   ....)
собственно даже из представленного описания ясно что фраза "совершенно различными атрибутами" звучит слишком категорично наблюдается уже как минимум два поля общих - ProductType_Id, и name ... и можно со стопроцентной уверенностью сказать что что эта не просто достаточный минимум эта - необходимый минимум ... короче смело создавайте одну общую таблицу на все виды товара с этими двумя полями и по отдельной таблице на каждый особый вид товара. завязывайте основную таблицу на твкие "дочернии" связью 1-к-1 и радуйтесь жизни ... соответсвенно и с связь с заказами будет только у "общей" таблицы
Код: plaintext
1.
2.
3.
4.
Create table OrderLines_ProductType(
   Order_Id,
   ProductType_Id,
   .....)
...
Рейтинг: 0 / 0
Товары и заказы...
    #34161351
Gorden
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо Shtock и NSFuimus,

авторto NSFuimus
короче смело создавайте одну общую таблицу на все виды товара с этими двумя полями и по отдельной таблице на каждый особый вид товара. завязывайте основную таблицу на твкие "дочернии" связью 1-к-1 и радуйтесь жизни ... соответсвенно и с связь с заказами будет только у "общей" таблицы

А как тогда в этом случае узнавать какой товар какому классу принадлежит?
...
Рейтинг: 0 / 0
Товары и заказы...
    #34161395
ModelR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это (тип товара) входит в необходимый минимум. С его же помощью можно запретить чужим типам попадать в таблицу данного типа.
...
Рейтинг: 0 / 0
Товары и заказы...
    #34161441
NSFuimus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а как бы вы узнавали к какой группе принадлежит товар в своей схеме? точно также - поиском в таблице ... предлагаемом мной варианте необходимо только завязать в SELECT (или как вы там будете искать) общую и кокретную таблицу через INNER JOIN чтобы получить и "общие" атрибуты
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Товары и заказы...
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]