INV CARD
Карточка ТМЦ хранит информацию о всех признаках ТМЦ, которые могут возникнуть в результате документооборота предприятия. В карточке ТМЦ обычно хранят те признаки, которые могут быть доступны в любом документе или в произвольном отчете. К признакам, которые хранятся в карточке, относятся: все виды цен на товары, поставщик, производитель, страна, виды упаковок, наценки и другие. Карточка ТМЦ создается при создании документа, и может быть изменена только при редактировании данного документа. Изменение любого признака товара в любом другом документе ведет обязательно к созданию новой карточки, в которую переносятся все неизмененные признаки. Каждая карточка знает, от какой карточки она произошла и хранит ссылку на документ, в котором появилась, документ в котором появилась самый первый родитель данной карточки, дата возникновения первого родителя.
CREATE TABLE inv_card ( id dintkey, /* идентификатор */ parent dforeignkey, /* ссылка на родительскую карточку */ goodkey dintkey, /* ссылка на товар */ documentkey dintkey, /* ссылка на документ создавший карту */ firstdocumentkey dintkey, /* ссылка на первый документ, создавший карточку */ firstdate ddate NOT NULL, /* дата первого появления карточки */ companykey dintkey, /* ссылка на нашу компанию */ reserved dreserved /* зарезервировано */ ); COMMIT; ALTER TABLE inv_card ADD CONSTRAINT inv_pk_card PRIMARY KEY (id); ALTER TABLE inv_card ADD CONSTRAINT inv_fk_card_goodkey FOREIGN KEY (goodkey) REFERENCES gd_good (id) ON UPDATE CASCADE ON DELETE CASCADE; ALTER TABLE inv_card ADD CONSTRAINT inv_fk_card_mk FOREIGN KEY (documentkey) REFERENCES gd_document (id) ON DELETE CASCADE ON UPDATE CASCADE; ALTER TABLE inv_card ADD CONSTRAINT inv_fk_card_fmk FOREIGN KEY (firstdocumentkey) REFERENCES gd_document (id) ON DELETE CASCADE ON UPDATE CASCADE; ALTER TABLE inv_card ADD CONSTRAINT inv_fk_card_companykey FOREIGN KEY (companykey) REFERENCES gd_ourcompany (companykey) ON UPDATE CASCADE; ALTER TABLE inv_card ADD CONSTRAINT inv_fk_card_parent FOREIGN KEY (parent) REFERENCES inv_card (id) ON UPDATE CASCADE;