__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',
--- /dev/null
+-- @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;