From 054dc55bbf4f0625a5984eb2bfff970b369f3888 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 11 Feb 2008 14:38:46 +0000 Subject: [PATCH] Add generic table for links between elements --- mysql/migration/2.2.0-2.4.0.sql | 16 ++++++++++++ mysql/tables/llx_element_element.key.sql | 29 +++++++++++++++++++++ mysql/tables/llx_element_element.sql | 32 ++++++++++++++++++++++++ 3 files changed, 77 insertions(+) create mode 100644 mysql/tables/llx_element_element.key.sql create mode 100644 mysql/tables/llx_element_element.sql diff --git a/mysql/migration/2.2.0-2.4.0.sql b/mysql/migration/2.2.0-2.4.0.sql index 658e47e62ed..c0fb019717c 100644 --- a/mysql/migration/2.2.0-2.4.0.sql +++ b/mysql/migration/2.2.0-2.4.0.sql @@ -154,3 +154,19 @@ create table llx_pr_liv )type=innodb; ALTER TABLE llx_paiement modify fk_bank integer NOT NULL DEFAULT 0; + + +create table llx_element_element +( + rowid integer AUTO_INCREMENT PRIMARY KEY, + sourceid integer NOT NULL, + sourcetype varchar(12) NOT NULL, + targetid integer NOT NULL, + targettype varchar(12) NOT NULL +) type=innodb; + + +ALTER TABLE llx_element_element + ADD UNIQUE INDEX idx_element_element_idx1 (sourceid, sourcetype, targetid, targettype); + +ALTER TABLE llx_element_element ADD INDEX idx_element_element_targetid (targetid); diff --git a/mysql/tables/llx_element_element.key.sql b/mysql/tables/llx_element_element.key.sql new file mode 100644 index 00000000000..046b8125421 --- /dev/null +++ b/mysql/tables/llx_element_element.key.sql @@ -0,0 +1,29 @@ +-- ============================================================================ +-- Copyright (C) 2008 Laurent Destailleur +-- +-- This program is free software; you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as published by +-- the Free Software Foundation; either version 2 of the License, or +-- (at your option) any later version. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with this program; if not, write to the Free Software +-- Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +-- +-- $Id$ +-- ============================================================================ + + +ALTER TABLE llx_element_element + ADD UNIQUE INDEX idx_element_element_idx1 (sourceid, sourcetype, targetid, targettype); + + +ALTER TABLE llx_element_element ADD INDEX idx_element_element_targetid (targetid); + +-- Pas de contraite sur sourceid et targetid car pointe sur differentes tables + \ No newline at end of file diff --git a/mysql/tables/llx_element_element.sql b/mysql/tables/llx_element_element.sql new file mode 100644 index 00000000000..dd39b627d5e --- /dev/null +++ b/mysql/tables/llx_element_element.sql @@ -0,0 +1,32 @@ +-- ============================================================================ +-- Copyright (C) 2008 Laurent Destailleur +-- +-- This program is free software; you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as published by +-- the Free Software Foundation; either version 2 of the License, or +-- (at your option) any later version. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with this program; if not, write to the Free Software +-- Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +-- +-- $Id$ +-- ============================================================================ +-- Table used for relations between elements of different types: +-- invoice-propal, propal-order, etc... +-- ============================================================================ + +create table llx_element_element +( + rowid integer AUTO_INCREMENT PRIMARY KEY, + sourceid integer NOT NULL, + sourcetype varchar(12) NOT NULL, + targetid integer NOT NULL, + targettype varchar(12) NOT NULL +) type=innodb; +