GD CONTACT
Материал из GedeminWiki
CREATE TABLE gd_contact ( id dintkey, /* Левая (верхняя) граница. Одновременно может использоваться */ /* как второй уникальный индекс, если группы и список */ /* находятся в разных таблицах */ lb dlb, rb drb, /* Правая (нижняя) граница */ parent dparent, contacttype daddrcontacttype, /* 0 - папка, 1 - группа, 2 - человек, 3 - клиент, 4 - подразделение, 5 - банк */ name dname, /* Імя для паказу */ address dtext60, /* Адрэс */ district dtext20, city dtext20, /* Горад */ region dtext20, /* Вобласць */ ZIP dtext20, /* Індэкс */ country dtext20, /* Краіна */ placekey dforeignkey, note dblobtext80_1251, /* Камэнтар */ externalkey dforeignkey, email dtext60, url dtext40, pobox dtext40, phone dtext40, fax dtext40, editorkey dforeignkey, editiondate deditiondate, afull dsecurity, achag dsecurity, aview dsecurity, disabled ddisabled, reserved dreserved ); ALTER TABLE gd_contact ADD CONSTRAINT gd_pk_contact PRIMARY KEY (id); /* калі выдаляецца бацькоўскі кантакт, выдаляем і ўсіх дзяцей */ ALTER TABLE gd_contact ADD CONSTRAINT gd_fk_contract_parent FOREIGN KEY (parent) REFERENCES gd_contact(id) ON UPDATE CASCADE ON DELETE CASCADE; ALTER TABLE gd_contact ADD CONSTRAINT gd_fk_contact_placekey FOREIGN KEY (placekey) REFERENCES gd_place (id) ON UPDATE CASCADE; ALTER TABLE gd_contact ADD CONSTRAINT gd_chk_contact_contacttype CHECK(contacttype IN (0, 1, 2, 3, 4, 5, 100, 101, 102, 103)); ALTER TABLE gd_contact ADD CONSTRAINT gd_chk_contact_parent CHECK((contacttype IN (0, 1)) OR (NOT (parent IS NULL))); ALTER TABLE gd_user ADD CONSTRAINT gd_fk_user_contactkey FOREIGN KEY (contactkey) REFERENCES gd_contact (id) ON UPDATE CASCADE; ALTER TABLE gd_contact ADD CONSTRAINT gd_fk_contact_editorkey FOREIGN KEY (editorkey) REFERENCES gd_contact(id) ON UPDATE CASCADE; CREATE ASC INDEX gd_x_contact_name ON gd_contact (name);