This commit is contained in:
seb
2026-08-01 05:10:03 +02:00
parent ee895fab5f
commit 9be9f7f74c
12 changed files with 164 additions and 79 deletions

View File

@@ -109,7 +109,7 @@ BEGIN
taxrate INT NULL,
reducedtaxrate INT NULL,
taxfreerate INT NULL,
poscustomergroup_id INT NULL,
poscustomergroup_id INT NOT NULL,
CONSTRAINT UQ_company_name UNIQUE (name),
CONSTRAINT FK_company_root_category FOREIGN KEY (root_category_id) REFERENCES category(id) ON DELETE SET NULL,
CONSTRAINT FK_company_default_language FOREIGN KEY (default_language_id) REFERENCES language(id) ON DELETE SET NULL,
@@ -126,7 +126,9 @@ BEGIN
CREATE TABLE customergroup (
id INT IDENTITY(1,1) PRIMARY KEY,
name NVARCHAR(255) NOT NULL,
company_id INT NOT NULL,
-- Nullable only for company-create chicken-egg (POS group first, then company, then SET).
-- Always set before commit; never left null for live rows.
company_id INT NULL,
CONSTRAINT FK_customergroup_company FOREIGN KEY (company_id) REFERENCES company(id) ON DELETE CASCADE
);
END
@@ -270,6 +272,9 @@ BEGIN
CONSTRAINT FK_articleean_article FOREIGN KEY (article_id) REFERENCES article(id) ON DELETE CASCADE,
CONSTRAINT UQ_articleean_ean UNIQUE (ean)
);
-- Hot path: getBySku EANs by article (UQ is ean-leading only)
CREATE INDEX IX_articleean_article_ean
ON articleean (article_id, ean);
END
`;
@@ -351,6 +356,9 @@ BEGIN
CONSTRAINT FK_categoryarticle_article FOREIGN KEY (article_id) REFERENCES article(id) ON DELETE CASCADE,
CONSTRAINT UQ_categoryarticle_category_article UNIQUE (category_id, article_id)
);
-- Hot path: getBySku / resolve by article (UQ is category-leading)
CREATE INDEX IX_categoryarticle_article_category
ON categoryarticle (article_id, category_id);
END
`;
@@ -420,6 +428,10 @@ BEGIN
CONSTRAINT FK_price_article FOREIGN KEY (article_id) REFERENCES article(id) ON DELETE CASCADE,
CONSTRAINT FK_price_customergroup FOREIGN KEY (customergroup_id) REFERENCES customergroup(id) ON DELETE CASCADE
);
-- Hot path: getBySku prices by article (covers ORDER BY + SELECT cols)
CREATE INDEX IX_price_article_cg_mult
ON price (article_id, customergroup_id, minmultiplier)
INCLUDE (net, tax_id);
END
`;