From: G. Richardson Date: Sun, 7 Aug 2016 20:48:09 +0000 (+0200) Subject: Tabelle prices - not null und unique auf parts_id und partsgroup_id X-Git-Tag: release-3.5.4~1898 X-Git-Url: http://wagnertech.de/git?a=commitdiff_plain;h=d817962ed43b7c3f4225626ac50942952461a33d;p=kivitendo-erp.git Tabelle prices - not null und unique auf parts_id und partsgroup_id --- diff --git a/SL/DB/MetaSetup/Price.pm b/SL/DB/MetaSetup/Price.pm index 29c0de338..a0c26391f 100644 --- a/SL/DB/MetaSetup/Price.pm +++ b/SL/DB/MetaSetup/Price.pm @@ -10,13 +10,15 @@ __PACKAGE__->meta->table('prices'); __PACKAGE__->meta->columns( id => { type => 'serial', not_null => 1 }, - parts_id => { type => 'integer' }, + parts_id => { type => 'integer', not_null => 1 }, price => { type => 'numeric', precision => 15, scale => 5 }, - pricegroup_id => { type => 'integer' }, + pricegroup_id => { type => 'integer', not_null => 1 }, ); __PACKAGE__->meta->primary_key_columns([ 'id' ]); +__PACKAGE__->meta->unique_keys([ 'parts_id', 'pricegroup_id' ]); + __PACKAGE__->meta->foreign_keys( parts => { class => 'SL::DB::Part', diff --git a/sql/Pg-upgrade2/prices_unique.sql b/sql/Pg-upgrade2/prices_unique.sql new file mode 100644 index 000000000..f086283c9 --- /dev/null +++ b/sql/Pg-upgrade2/prices_unique.sql @@ -0,0 +1,9 @@ +-- @tag: prices_unique +-- @description: DB-Constraint - nur ein Preis pro Artikel pro Preisgruppe +-- @depends: release_3_4_1 + +-- it would be easier to just have a composite primary key on parts_id and +-- pricegroup_id, but that would need some code refactoring +ALTER TABLE prices ADD CONSTRAINT parts_id_pricegroup_id_unique UNIQUE (parts_id, pricegroup_id); +ALTER TABLE prices ALTER COLUMN parts_id SET NOT NULL; +ALTER TABLE prices ALTER COLUMN pricegroup_id SET NOT NULL;