Как добавить отношение многие-к-одному в PostgreSQL - PullRequest
1 голос
/ 15 мая 2009

У меня есть две таблицы: «Stock Master» и «Stock In», как мне создать отношения «многие к одному» между ними? «Stock In» регистрирует много разных запасов по разным датам и количествам, но «Stock Master» должен показывать и объединять одни и те же запасы с их количествами в один и должен функционировать как «первым пришел - первым вышел».

Ответы [ 3 ]

1 голос
/ 15 мая 2009

Звучит не так, как будто многие к одному - это то, что вам действительно нужно.

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

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

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

0 голосов
/ 15 мая 2009

Если вы хотите создать представление в Postgresql (как вы это делаете из комментария к совету JosefAssad), как и в любой другой базе данных SQL, используйте что-то вроде:

CREATE VIEW Stockmaster (prodid, total)
  AS SELECT prodid, SUM(quantity)
  FROM Stockin
  GROUP BY prodid
0 голосов
/ 15 мая 2009

Если я не пропустил что-то здесь, вы бы справились с этим, используя соответствующие отношения первичного / внешнего ключа.

...