2013-07-20 5 views
0

Можем ли мы иметь поле Массив в качестве внешнего ключа? Например, у меня есть следующие две таблицы:База данных - массив как внешний ключ

Create Sequence Product_id_seq start with 1 increment by 1; 
Create Table Purchase (
Productid integer default next value for product_id_seq, 
Qty integer, 
cost decimal(17,2) 
); 

Create Sequence InvoiceNo_seq start with 1 increment by 1; 
Create Table Sales (
Invoice_Number integer default next value for InvoiceNo_Seq, 
qty integer, 
product_ids ARRAY, 
sale_value decimal(17,2) 
); 

Я хотел бы добавить ограничение в таблицу продаж, таких как «Foreign Key (Product_ids) references Purchase (Productid)».

Почему?

например. Я купил 20 калькуляторов 1 июля и еще 10 10 июля. Я продал 25 калькуляторов 13 июля, я должен был бы указать на Productids обоих лотов Калькуляторов, объединив их, которые они стали 25 нотами (20 из продукта 1 и 5 из продукта 2). это - то, где массив входит в картину.

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

Возможно ли это?

ответ

2

Вы можете достичь этого, используя Trigger