This commit is contained in:
seb
2026-09-29 16:16:05 +02:00
parent 26d2f83d64
commit ae5d5cc6f8
40 changed files with 2139 additions and 0 deletions

View File

@@ -894,6 +894,80 @@ END
');
`;
export const INIT_PROPERTYNAME = `
IF NOT EXISTS (SELECT * FROM sys.tables WHERE name = 'propertyname')
BEGIN
CREATE TABLE propertyname (
id INT IDENTITY(1,1) PRIMARY KEY,
company_id INT NOT NULL,
name NVARCHAR(255) NOT NULL,
sort INT NOT NULL CONSTRAINT DF_propertyname_sort DEFAULT 0,
CONSTRAINT FK_propertyname_company FOREIGN KEY (company_id) REFERENCES company(id) ON DELETE CASCADE,
CONSTRAINT UQ_propertyname_company_name UNIQUE (company_id, name)
);
END
`;
export const INIT_ARTICLEPROPERTY = `
IF NOT EXISTS (SELECT * FROM sys.tables WHERE name = 'articleproperty')
BEGIN
CREATE TABLE articleproperty (
id INT IDENTITY(1,1) PRIMARY KEY,
article_id INT NOT NULL,
property_id INT NOT NULL,
value NVARCHAR(MAX) NOT NULL,
sort INT NOT NULL CONSTRAINT DF_articleproperty_sort DEFAULT 0,
CONSTRAINT FK_articleproperty_article FOREIGN KEY (article_id) REFERENCES article(id) ON DELETE CASCADE,
CONSTRAINT FK_articleproperty_property FOREIGN KEY (property_id) REFERENCES propertyname(id) ON DELETE CASCADE,
CONSTRAINT UQ_articleproperty_article_property UNIQUE (article_id, property_id)
);
END
`;
export const INIT_ATTRIBUTENAME = `
IF NOT EXISTS (SELECT * FROM sys.tables WHERE name = 'attributename')
BEGIN
CREATE TABLE attributename (
id INT IDENTITY(1,1) PRIMARY KEY,
company_id INT NOT NULL,
name NVARCHAR(255) NOT NULL,
sort INT NOT NULL CONSTRAINT DF_attributename_sort DEFAULT 0,
exclusive BIT NOT NULL CONSTRAINT DF_attributename_exclusive DEFAULT 0,
CONSTRAINT FK_attributename_company FOREIGN KEY (company_id) REFERENCES company(id) ON DELETE CASCADE,
CONSTRAINT UQ_attributename_company_name UNIQUE (company_id, name)
);
END
`;
export const INIT_ATTRIBUTEVALUE = `
IF NOT EXISTS (SELECT * FROM sys.tables WHERE name = 'attributevalue')
BEGIN
CREATE TABLE attributevalue (
id INT IDENTITY(1,1) PRIMARY KEY,
attribute_id INT NOT NULL,
value NVARCHAR(255) NOT NULL,
sort INT NOT NULL CONSTRAINT DF_attributevalue_sort DEFAULT 0,
CONSTRAINT FK_attributevalue_attribute FOREIGN KEY (attribute_id) REFERENCES attributename(id) ON DELETE CASCADE,
CONSTRAINT UQ_attributevalue_attribute_value UNIQUE (attribute_id, value)
);
END
`;
export const INIT_ARTICLEATTRIBUTEVALUE = `
IF NOT EXISTS (SELECT * FROM sys.tables WHERE name = 'articleattributevalue')
BEGIN
CREATE TABLE articleattributevalue (
id INT IDENTITY(1,1) PRIMARY KEY,
article_id INT NOT NULL,
attributevalue_id INT NOT NULL,
sort INT NOT NULL CONSTRAINT DF_articleattributevalue_sort DEFAULT 0,
CONSTRAINT FK_articleattributevalue_article FOREIGN KEY (article_id) REFERENCES article(id) ON DELETE CASCADE,
CONSTRAINT FK_articleattributevalue_attributevalue FOREIGN KEY (attributevalue_id) REFERENCES attributevalue(id) ON DELETE CASCADE,
CONSTRAINT UQ_articleattributevalue_article_attributevalue UNIQUE (article_id, attributevalue_id)
);
END
`;
/** DDL scripts in dependency order for schema init. */
export const SCHEMA_SCRIPTS = [
INIT_META,
@@ -926,6 +1000,11 @@ export const SCHEMA_SCRIPTS = [
INIT_ARTICLENAME,
INIT_PRICE,
INIT_ARTICLE_SUPPLIER,
INIT_PROPERTYNAME,
INIT_ARTICLEPROPERTY,
INIT_ATTRIBUTENAME,
INIT_ATTRIBUTEVALUE,
INIT_ARTICLEATTRIBUTEVALUE,
INIT_MANIFEST,
INIT_MANIFESTARTICLE,
INIT_WAREHOUSE,