From c839b2ba3567b720b173c287170ffd8b185c43b8 Mon Sep 17 00:00:00 2001 From: seb Date: Sat, 1 Aug 2026 06:38:31 +0200 Subject: [PATCH] Regenerate schema graph for company-scoped units. --- schema-graph.dot | 115 +-- schema-graph.svg | 2362 +++++++++++++++++++++++----------------------- 2 files changed, 1251 insertions(+), 1226 deletions(-) diff --git a/schema-graph.dot b/schema-graph.dot index bc60456..28f3a7b 100644 --- a/schema-graph.dot +++ b/schema-graph.dot @@ -10,35 +10,35 @@ digraph schema { style="rounded,filled"; fillcolor="#ffffff60"; color="#a0aec0"; fontcolor="#1a365d"; margin=14; numbers [label=<
numbers
idINT PK
company_idINT FK
typeNVARCHAR(100)
prefixNVARCHAR(50)
paddingINT
nextINT
>]; - meta [label=<
meta
keyNVARCHAR(255)
valueNVARCHAR(MAX)
>]; entity [label=<
entity
idINT PK
customergroup_idINT FK
firstnameNVARCHAR(255)
lastnameNVARCHAR(255)
>]; syncpos [label=<
syncpos
idINT PK
company_idINT FK
paircodeNVARCHAR(50)
token?NVARCHAR(255)
>]; + meta [label=<
meta
keyNVARCHAR(255)
valueNVARCHAR(MAX)
>]; + company [label=<
company
idINT PK
default_language_id?INT FK
root_category_id?INT FK
poscustomergroup_idINT FK
taxrate?INT FK
reducedtaxrate?INT FK
taxfreerate?INT FK
nameNVARCHAR(255)
>]; companyuser [label=<
companyuser
idINT PK
company_idINT FK
google_auth_idINT FK
>]; - company [label=<
company
idINT PK
poscustomergroup_id?INT FK
taxrate?INT FK
reducedtaxrate?INT FK
taxfreerate?INT FK
default_language_id?INT FK
root_category_id?INT FK
nameNVARCHAR(255)
>]; + customergroup [label=<
customergroup
idINT PK
company_id?INT FK
nameNVARCHAR(255)
>]; google_auth [label=<
google_auth
idINT PK
selected_company?INT FK
emailNVARCHAR(320)
created_atDATETIME2
>]; - customergroup [label=<
customergroup
idINT PK
company_idINT FK
nameNVARCHAR(255)
>]; } subgraph cluster_i18n { label="Localization"; labeljust="l"; fontsize=15; style="rounded,filled"; fillcolor="#ffffff60"; color="#a0aec0"; fontcolor="#1a365d"; margin=14; - unittext [label=<
unittext
idINT PK
language_idINT FK
unit_idINT FK
symbolNVARCHAR(50)
nameNVARCHAR(255)
>]; - language [label=<
language
idINT PK
iso639NVARCHAR(10)
>]; categorytext [label=<
categorytext
idINT PK
language_idINT FK
category_idINT FK
nameNVARCHAR(255)
slugNVARCHAR(255)
seo?NVARCHAR(MAX)
desc?NVARCHAR(MAX)
>]; articletext [label=<
articletext
idINT PK
language_idINT FK
article_idINT FK
nameNVARCHAR(255)
slugNVARCHAR(255)
seo?NVARCHAR(MAX)
desc?NVARCHAR(MAX)
>]; + unittext [label=<
unittext
idINT PK
language_idINT FK
unit_idINT FK
symbolNVARCHAR(50)
nameNVARCHAR(255)
>]; + language [label=<
language
idINT PK
iso639NVARCHAR(10)
>]; } subgraph cluster_catalog { label="Catalog"; labeljust="l"; fontsize=15; style="rounded,filled"; fillcolor="#ffffff60"; color="#a0aec0"; fontcolor="#1a365d"; margin=14; articlehistory [label=<
articlehistory
idINT PK
article_idINT FK
dateDATETIME2
textNVARCHAR(MAX)
>]; - category [label=<
category
idINT PK
parent_id?INT FK
sortINT
>]; articleean [label=<
articleean
idINT PK
article_idINT FK
eanNVARCHAR(50)
>]; - article [label=<
article
idINT PK
unit_idINT FK
fatherarticle_id?INT FK
articlelist_id?INT FK
optionslist_id?INT FK
brand_id?INT FK
sku?NVARCHAR(100)
unitamountFLOAT
weightFLOAT
is_fatherBIT
fathersortINT
created_atDATETIME2
updated_atDATETIME2
>]; - categoryarticle [label=<
categoryarticle
idINT PK
category_idINT FK
article_idINT FK
>]; + categoryarticle [label=<
categoryarticle
idINT PK
article_idINT FK
category_idINT FK
>]; articlelist [label=<
articlelist
idINT PK
>]; + article [label=<
article
idINT PK
unit_idINT FK
articlelist_id?INT FK
fatherarticle_id?INT FK
optionslist_id?INT FK
brand_id?INT FK
sku?NVARCHAR(100)
unitamountFLOAT
weightFLOAT
is_fatherBIT
fathersortINT
created_atDATETIME2
updated_atDATETIME2
>]; + category [label=<
category
idINT PK
parent_id?INT FK
sortINT
>]; + articlelistarticle [label=<
articlelistarticle
idINT PK
articlelist_idINT FK
article_idINT FK
countINT
sortINT
>]; optionslist [label=<
optionslist
idINT PK
>]; - articlelistarticle [label=<
articlelistarticle
idINT PK
article_idINT FK
articlelist_idINT FK
countINT
sortINT
>]; brand [label=<
brand
idINT PK
nameNVARCHAR(255)
gsprpinfo?NVARCHAR(MAX)
>]; optionslistarticle [label=<
optionslistarticle
idINT PK
article_idINT FK
optionslist_idINT FK
countINT
sortINT
mandatedBIT
>]; } @@ -46,72 +46,73 @@ digraph schema { label="Media"; labeljust="l"; fontsize=15; style="rounded,filled"; fillcolor="#ffffff60"; color="#a0aec0"; fontcolor="#1a365d"; margin=14; - categorypic [label=<
categorypic
idINT PK
category_idINT FK
pic_idINT FK
sortINT
>]; - pic [label=<
pic
idINT PK
wINT
hINT
sizeBIGINT
hashNVARCHAR(64)
thumbwINT
thumbhINT
thumbhashNVARCHAR(64)
sourceNVARCHAR(MAX)
>]; - articlepic [label=<
articlepic
idINT PK
article_idINT FK
pic_idINT FK
sortINT
>]; brandpic [label=<
brandpic
idINT PK
brand_idINT FK
pic_idINT FK
sortINT
>]; + articlepic [label=<
articlepic
idINT PK
article_idINT FK
pic_idINT FK
sortINT
>]; + pic [label=<
pic
idINT PK
wINT
hINT
sizeBIGINT
hashNVARCHAR(64)
thumbwINT
thumbhINT
thumbhashNVARCHAR(64)
sourceNVARCHAR(MAX)
fullbinaryVARBINARY(MAX)
thumbbinaryVARBINARY(MAX)
>]; + categorypic [label=<
categorypic
idINT PK
category_idINT FK
pic_idINT FK
sortINT
>]; } subgraph cluster_commerce { label="Pricing & Documents"; labeljust="l"; fontsize=15; style="rounded,filled"; fillcolor="#ffffff60"; color="#a0aec0"; fontcolor="#1a365d"; margin=14; tax [label=<
tax
idINT PK
rateDECIMAL(18,4)
>]; - price [label=<
price
idINT PK
customergroup_idINT FK
tax_idINT FK
article_idINT FK
minmultiplierDECIMAL(18,4)
netFLOAT
>]; + price [label=<
price
idINT PK
article_idINT FK
customergroup_idINT FK
tax_idINT FK
minmultiplierDECIMAL(18,4)
netFLOAT
>]; manifest [label=<
manifest
idINT PK
numberNVARCHAR(100)
typeNVARCHAR(100)
dateDATETIME2
>]; - manifestarticle [label=<
manifestarticle
idINT PK
tax_idINT FK
manifest_idINT FK
article_idINT FK
amountFLOAT
netFLOAT
transactedamountFLOAT
comment?NVARCHAR(MAX)
rebateFLOAT
>]; + manifestarticle [label=<
manifestarticle
idINT PK
article_id?INT FK
tax_idINT FK
manifest_idINT FK
amountFLOAT
netFLOAT
transactedamountFLOAT
comment?NVARCHAR(MAX)
rebateFLOAT
>]; } subgraph cluster_units { label="Units"; labeljust="l"; fontsize=15; style="rounded,filled"; fillcolor="#ffffff60"; color="#a0aec0"; fontcolor="#1a365d"; margin=14; - unit [label=<
unit
idINT PK
siNVARCHAR(50)
basesiNVARCHAR(50)
basesifactorFLOAT
>]; + unit [label=<
unit
idINT PK
company_idINT FK
siNVARCHAR(50)
basesiNVARCHAR(50)
basesifactorFLOAT
>]; } __legend [label=<
Legend
PKprimary key
FKforeign key
?nullable column
—FOREIGN KEY constraint
- -naming convention only, no constraint
>]; - google_auth:selected_company:sw -> company:in3:n [color="#c53030", fontcolor="#c53030", tooltip="FK_google_auth_selected_company"]; + google_auth:selected_company:sw -> company:in5:n [color="#c53030", fontcolor="#c53030", tooltip="FK_google_auth_selected_company"]; category:parent_id:e -> category:id:e [color="#2f855a", fontcolor="#2f855a", tooltip="FK_category_parent"]; - company:root_category_id:e -> category:in0:n [color="#2b6cb0", fontcolor="#2b6cb0", tooltip="FK_company_root_category"]; - company:default_language_id:e -> language:in0:n [color="#b7791f", fontcolor="#b7791f", tooltip="FK_company_default_language"]; - company:taxrate:se -> tax:in2:n [color="#6b46c1", fontcolor="#6b46c1", tooltip="FK_company_taxrate"]; - company:reducedtaxrate:se -> tax:in0:n [color="#c05621", fontcolor="#c05621", tooltip="FK_company_reducedtaxrate"]; - company:taxfreerate:se -> tax:in1:n [color="#319795", fontcolor="#319795", tooltip="FK_company_taxfreerate"]; + company:root_category_id:w -> category:in4:n [color="#2b6cb0", fontcolor="#2b6cb0", tooltip="FK_company_root_category"]; + company:default_language_id:w -> language:in3:n [color="#b7791f", fontcolor="#b7791f", tooltip="FK_company_default_language"]; + company:taxrate:e -> tax:in2:n [color="#6b46c1", fontcolor="#6b46c1", tooltip="FK_company_taxrate"]; + company:reducedtaxrate:e -> tax:in0:n [color="#c05621", fontcolor="#c05621", tooltip="FK_company_reducedtaxrate"]; + company:taxfreerate:e -> tax:in1:n [color="#319795", fontcolor="#319795", tooltip="FK_company_taxfreerate"]; customergroup:company_id:nw -> company:in4:n [color="#97266d", fontcolor="#97266d", tooltip="FK_customergroup_company"]; company:poscustomergroup_id:se -> customergroup:in1:n [color="#4c51bf", fontcolor="#4c51bf", tooltip="FK_company_poscustomergroup"]; - entity:customergroup_id:se -> customergroup:in0:n [color="#276749", fontcolor="#276749", tooltip="FK_entity_customergroup"]; - unittext:unit_id:se -> unit:in0:n [color="#9c4221", fontcolor="#9c4221", tooltip="FK_unittext_unit"]; - unittext:language_id:se -> language:in1:n [color="#0987a0", fontcolor="#0987a0", tooltip="FK_unittext_language"]; - article:unit_id:w -> unit:in1:n [color="#553c9a", fontcolor="#553c9a", tooltip="FK_article_unit"]; - article:brand_id:e -> brand:in0:n [color="#742a2a", fontcolor="#742a2a", tooltip="FK_article_brand"]; - article:articlelist_id:se -> articlelist:in0:n [color="#22543d", fontcolor="#22543d", tooltip="FK_article_articlelist"]; - article:optionslist_id:se -> optionslist:in0:n [color="#1a365d", fontcolor="#1a365d", tooltip="FK_article_optionslist"]; - article:fatherarticle_id:e -> article:id:e [color="#702459", fontcolor="#702459", tooltip="FK_article_fatherarticle"]; - articlehistory:article_id:se -> article:in3:n [color="#744210", fontcolor="#744210", tooltip="FK_articlehistory_article"]; - articleean:article_id:se -> article:in4:n [color="#285e61", fontcolor="#285e61", tooltip="FK_articleean_article"]; - articlepic:article_id:w -> article:in9:n [color="#d53f8c", fontcolor="#d53f8c", tooltip="FK_articlepic_article"]; - articlepic:pic_id:sw -> pic:in1:n [color="#dd6b20", fontcolor="#dd6b20", tooltip="FK_articlepic_pic"]; - brandpic:brand_id:sw -> brand:in1:n [color="#38a169", fontcolor="#38a169", tooltip="FK_brandpic_brand"]; - brandpic:pic_id:sw -> pic:in2:n [color="#3182ce", fontcolor="#3182ce", tooltip="FK_brandpic_pic"]; - articlelistarticle:articlelist_id:sw -> articlelist:in1:n [color="#805ad5", fontcolor="#805ad5", tooltip="FK_articlelistarticle_articlelist"]; - articlelistarticle:article_id:sw -> article:in7:n [color="#c53030", fontcolor="#c53030", tooltip="FK_articlelistarticle_article"]; - optionslistarticle:optionslist_id:sw -> optionslist:in1:n [color="#2f855a", fontcolor="#2f855a", tooltip="FK_optionslistarticle_optionslist"]; - optionslistarticle:article_id:w -> article:in8:n [color="#2b6cb0", fontcolor="#2b6cb0", tooltip="FK_optionslistarticle_article"]; - categoryarticle:category_id:sw -> category:in3:n [color="#b7791f", fontcolor="#b7791f", tooltip="FK_categoryarticle_category"]; - categoryarticle:article_id:sw -> article:in6:n [color="#6b46c1", fontcolor="#6b46c1", tooltip="FK_categoryarticle_article"]; - categorypic:category_id:w -> category:in4:n [color="#c05621", fontcolor="#c05621", tooltip="FK_categorypic_category"]; - categorypic:pic_id:se -> pic:in0:n [color="#319795", fontcolor="#319795", tooltip="FK_categorypic_pic"]; - categorytext:category_id:se -> category:in1:n [color="#97266d", fontcolor="#97266d", tooltip="FK_categorytext_category"]; - categorytext:language_id:sw -> language:in2:n [color="#4c51bf", fontcolor="#4c51bf", tooltip="FK_categorytext_language"]; - articletext:article_id:e -> article:in2:n [color="#276749", fontcolor="#276749", tooltip="FK_articletext_article"]; - articletext:language_id:sw -> language:in3:n [color="#9c4221", fontcolor="#9c4221", tooltip="FK_articletext_language"]; - price:tax_id:sw -> tax:in3:n [color="#0987a0", fontcolor="#0987a0", tooltip="FK_price_tax"]; - price:article_id:e -> article:in0:n [color="#553c9a", fontcolor="#553c9a", tooltip="FK_price_article"]; - price:customergroup_id:sw -> customergroup:in2:n [color="#742a2a", fontcolor="#742a2a", tooltip="FK_price_customergroup"]; - manifestarticle:manifest_id:sw -> manifest:in0:n [color="#22543d", fontcolor="#22543d", tooltip="FK_manifestarticle_manifest"]; - manifestarticle:article_id:e -> article:in1:n [color="#1a365d", fontcolor="#1a365d", tooltip="FK_manifestarticle_article"]; - manifestarticle:tax_id:sw -> tax:in4:n [color="#702459", fontcolor="#702459", tooltip="FK_manifestarticle_tax"]; - numbers:company_id:e -> company:in0:n [color="#744210", fontcolor="#744210", tooltip="FK_numbers_company"]; - companyuser:google_auth_id:se -> google_auth:in0:n [color="#285e61", fontcolor="#285e61", tooltip="FK_companyuser_google_auth"]; - companyuser:company_id:se -> company:in2:n [color="#d53f8c", fontcolor="#d53f8c", tooltip="FK_companyuser_company"]; - syncpos:company_id:se -> company:in1:n [color="#dd6b20", fontcolor="#dd6b20", tooltip="FK_syncpos_company"]; + entity:customergroup_id:e -> customergroup:in0:n [color="#276749", fontcolor="#276749", tooltip="FK_entity_customergroup"]; + unit:company_id:e -> company:in0:n [color="#9c4221", fontcolor="#9c4221", tooltip="FK_unit_company"]; + unittext:unit_id:se -> unit:in0:n [color="#0987a0", fontcolor="#0987a0", tooltip="FK_unittext_unit"]; + unittext:language_id:se -> language:in2:n [color="#553c9a", fontcolor="#553c9a", tooltip="FK_unittext_language"]; + article:unit_id:w -> unit:in1:n [color="#742a2a", fontcolor="#742a2a", tooltip="FK_article_unit"]; + article:brand_id:se -> brand:in0:n [color="#22543d", fontcolor="#22543d", tooltip="FK_article_brand"]; + article:articlelist_id:sw -> articlelist:in0:n [color="#1a365d", fontcolor="#1a365d", tooltip="FK_article_articlelist"]; + article:optionslist_id:se -> optionslist:in0:n [color="#702459", fontcolor="#702459", tooltip="FK_article_optionslist"]; + article:fatherarticle_id:e -> article:id:e [color="#744210", fontcolor="#744210", tooltip="FK_article_fatherarticle"]; + articlehistory:article_id:e -> article:in1:n [color="#285e61", fontcolor="#285e61", tooltip="FK_articlehistory_article"]; + articleean:article_id:se -> article:in2:n [color="#d53f8c", fontcolor="#d53f8c", tooltip="FK_articleean_article"]; + articlepic:article_id:w -> article:in7:n [color="#dd6b20", fontcolor="#dd6b20", tooltip="FK_articlepic_article"]; + articlepic:pic_id:se -> pic:in1:n [color="#38a169", fontcolor="#38a169", tooltip="FK_articlepic_pic"]; + brandpic:brand_id:sw -> brand:in1:n [color="#3182ce", fontcolor="#3182ce", tooltip="FK_brandpic_brand"]; + brandpic:pic_id:se -> pic:in0:n [color="#805ad5", fontcolor="#805ad5", tooltip="FK_brandpic_pic"]; + articlelistarticle:articlelist_id:sw -> articlelist:in1:n [color="#c53030", fontcolor="#c53030", tooltip="FK_articlelistarticle_articlelist"]; + articlelistarticle:article_id:sw -> article:in5:n [color="#2f855a", fontcolor="#2f855a", tooltip="FK_articlelistarticle_article"]; + optionslistarticle:optionslist_id:sw -> optionslist:in1:n [color="#2b6cb0", fontcolor="#2b6cb0", tooltip="FK_optionslistarticle_optionslist"]; + optionslistarticle:article_id:sw -> article:in6:n [color="#b7791f", fontcolor="#b7791f", tooltip="FK_optionslistarticle_article"]; + categoryarticle:category_id:se -> category:in1:n [color="#6b46c1", fontcolor="#6b46c1", tooltip="FK_categoryarticle_category"]; + categoryarticle:article_id:se -> article:in3:n [color="#c05621", fontcolor="#c05621", tooltip="FK_categoryarticle_article"]; + categorypic:category_id:sw -> category:in3:n [color="#319795", fontcolor="#319795", tooltip="FK_categorypic_category"]; + categorypic:pic_id:sw -> pic:in2:n [color="#97266d", fontcolor="#97266d", tooltip="FK_categorypic_pic"]; + categorytext:category_id:e -> category:in0:n [color="#4c51bf", fontcolor="#4c51bf", tooltip="FK_categorytext_category"]; + categorytext:language_id:se -> language:in0:n [color="#276749", fontcolor="#276749", tooltip="FK_categorytext_language"]; + articletext:article_id:e -> article:in0:n [color="#9c4221", fontcolor="#9c4221", tooltip="FK_articletext_article"]; + articletext:language_id:se -> language:in1:n [color="#0987a0", fontcolor="#0987a0", tooltip="FK_articletext_language"]; + price:tax_id:sw -> tax:in3:n [color="#553c9a", fontcolor="#553c9a", tooltip="FK_price_tax"]; + price:article_id:w -> article:in8:n [color="#742a2a", fontcolor="#742a2a", tooltip="FK_price_article"]; + price:customergroup_id:sw -> customergroup:in2:n [color="#22543d", fontcolor="#22543d", tooltip="FK_price_customergroup"]; + manifestarticle:manifest_id:sw -> manifest:in0:n [color="#1a365d", fontcolor="#1a365d", tooltip="FK_manifestarticle_manifest"]; + manifestarticle:article_id:w -> article:in9:n [color="#702459", fontcolor="#702459", tooltip="FK_manifestarticle_article"]; + manifestarticle:tax_id:sw -> tax:in4:n [color="#744210", fontcolor="#744210", tooltip="FK_manifestarticle_tax"]; + numbers:company_id:se -> company:in1:n [color="#285e61", fontcolor="#285e61", tooltip="FK_numbers_company"]; + companyuser:google_auth_id:se -> google_auth:in0:n [color="#d53f8c", fontcolor="#d53f8c", tooltip="FK_companyuser_google_auth"]; + companyuser:company_id:sw -> company:in3:n [color="#dd6b20", fontcolor="#dd6b20", tooltip="FK_companyuser_company"]; + syncpos:company_id:se -> company:in2:n [color="#38a169", fontcolor="#38a169", tooltip="FK_syncpos_company"]; } \ No newline at end of file diff --git a/schema-graph.svg b/schema-graph.svg index 15c1333..42e7d88 100644 --- a/schema-graph.svg +++ b/schema-graph.svg @@ -4,442 +4,434 @@ - - + + schema - + cluster_identity - -Identity & Company + +Identity & Company cluster_i18n - -Localization + +Localization cluster_catalog - -Catalog + +Catalog cluster_media - -Media + +Media cluster_commerce - -Pricing & Documents + +Pricing & Documents cluster_units - -Units + +Units numbers - - -numbers - - -id -INT -PK - - -company_id -INT -FK - - -type -NVARCHAR(100) - - -prefix -NVARCHAR(50) - - -padding -INT - - -next -INT + + +numbers + + +id +INT +PK + + +company_id +INT +FK + + +type +NVARCHAR(100) + + +prefix +NVARCHAR(50) + + +padding +INT + + +next +INT - + company - - - - - - - -company - - -id -INT -PK - - -poscustomergroup_id -? -INT -FK - - -taxrate -? -INT -FK - - -reducedtaxrate -? -INT -FK - - -taxfreerate -? -INT -FK - - -default_language_id -? -INT -FK - - -root_category_id -? -INT -FK - - -name -NVARCHAR(255) + + + + + + + + +company + + +id +INT +PK + + +default_language_id +? +INT +FK + + +root_category_id +? +INT +FK + + +poscustomergroup_id +INT +FK + + +taxrate +? +INT +FK + + +reducedtaxrate +? +INT +FK + + +taxfreerate +? +INT +FK + + +name +NVARCHAR(255) - -numbers:e->company:n - - - + +numbers:se->company:n + + + - - -meta - - -meta - - -key -NVARCHAR(255) - - -value -NVARCHAR(MAX) - - + entity - - -entity - - -id -INT -PK - - -customergroup_id -INT -FK - - -firstname -NVARCHAR(255) - - -lastname -NVARCHAR(255) + + +entity + + +id +INT +PK + + +customergroup_id +INT +FK + + +firstname +NVARCHAR(255) + + +lastname +NVARCHAR(255) - + customergroup - - - - - -customergroup - - -id -INT -PK - - -company_id -INT -FK - - -name -NVARCHAR(255) + + + + + +customergroup + + +id +INT +PK + + +company_id +? +INT +FK + + +name +NVARCHAR(255) -entity:se->customergroup:n +entity:e->customergroup:n - - + + - + syncpos - - -syncpos - - -id -INT -PK - - -company_id -INT -FK - - -paircode -NVARCHAR(50) - - -token? -NVARCHAR(255) + + +syncpos + + +id +INT +PK + + +company_id +INT +FK + + +paircode +NVARCHAR(50) + + +token? +NVARCHAR(255) - + syncpos:se->company:n - - - + + + - - -companyuser - - -companyuser - - -id -INT -PK - - -company_id -INT -FK - - -google_auth_id -INT -FK - - - -companyuser:se->company:n - - - - - - - - -google_auth - - - -google_auth - - -id -INT -PK - - -selected_company -? -INT -FK - - -email -NVARCHAR(320) - - -created_at -DATETIME2 - - - -companyuser:se->google_auth:n - - - - - + + +meta + + +meta + + +key +NVARCHAR(255) + + +value +NVARCHAR(MAX) company:se->customergroup:n - - + + - + language - - - - - - -language - - -id -INT -PK - - -iso639 -NVARCHAR(10) + + + + + + +language + + +id +INT +PK + + +iso639 +NVARCHAR(10) -company:e->language:n +company:w->language:n - - + + - + category - - - - - - - -category - - -id -INT -PK - - -parent_id -? -INT -FK - - -sort -INT + + + + + + + +category + + +id +INT +PK + + +parent_id +? +INT +FK + + +sort +INT -company:e->category:n +company:w->category:n - - + + tax - - - - - - - -tax - - -id -INT -PK - - -rate -DECIMAL(18,4) + + + + + + + +tax + + +id +INT +PK + + +rate +DECIMAL(18,4) -company:se->tax:n +company:e->tax:n - - + + -company:se->tax:n +company:e->tax:n - - + + -company:se->tax:n +company:e->tax:n - - + + - - -google_auth:sw->company:n - - - + + +companyuser + + +companyuser + + +id +INT +PK + + +company_id +INT +FK + + +google_auth_id +INT +FK + + + +companyuser:sw->company:n + + + + + + + + +google_auth + + + +google_auth + + +id +INT +PK + + +selected_company +? +INT +FK + + +email +NVARCHAR(320) + + +created_at +DATETIME2 + + + +companyuser:se->google_auth:n + + + @@ -447,307 +439,486 @@ customergroup:nw->company:n - - + + + + + + + +google_auth:sw->company:n + + + + + + + + +categorytext + + +categorytext + + +id +INT +PK + + +language_id +INT +FK + + +category_id +INT +FK + + +name +NVARCHAR(255) + + +slug +NVARCHAR(255) + + +seo? +NVARCHAR(MAX) + + +desc? +NVARCHAR(MAX) + + + +categorytext:se->language:n + + + + + + + + +categorytext:e->category:n + + + + + + + + +articletext + + +articletext + + +id +INT +PK + + +language_id +INT +FK + + +article_id +INT +FK + + +name +NVARCHAR(255) + + +slug +NVARCHAR(255) + + +seo? +NVARCHAR(MAX) + + +desc? +NVARCHAR(MAX) + + + +articletext:se->language:n + + + + + + + + +article + + + + + + + + + + + + +article + + +id +INT +PK + + +unit_id +INT +FK + + +articlelist_id +? +INT +FK + + +fatherarticle_id +? +INT +FK + + +optionslist_id +? +INT +FK + + +brand_id +? +INT +FK + + +sku? +NVARCHAR(100) + + +unitamount +FLOAT + + +weight +FLOAT + + +is_father +BIT + + +fathersort +INT + + +created_at +DATETIME2 + + +updated_at +DATETIME2 + + + +articletext:e->article:n + + + - + unittext - - -unittext - - -id -INT -PK - - -language_id -INT -FK - - -unit_id -INT -FK - - -symbol -NVARCHAR(50) - - -name -NVARCHAR(255) + + +unittext + + +id +INT +PK + + +language_id +INT +FK + + +unit_id +INT +FK + + +symbol +NVARCHAR(50) + + +name +NVARCHAR(255) - + unittext:se->language:n - - - + + + unit - - - - -unit - - -id -INT -PK - - -si -NVARCHAR(50) - - -basesi -NVARCHAR(50) - - -basesifactor -FLOAT + + + + +unit + + +id +INT +PK + + +company_id +INT +FK + + +si +NVARCHAR(50) + + +basesi +NVARCHAR(50) + + +basesifactor +FLOAT - + unittext:se->unit:n - - - - - - - - -categorytext - - -categorytext - - -id -INT -PK - - -language_id -INT -FK - - -category_id -INT -FK - - -name -NVARCHAR(255) - - -slug -NVARCHAR(255) - - -seo? -NVARCHAR(MAX) - - -desc? -NVARCHAR(MAX) - - - -categorytext:sw->language:n - - - - - - - - -categorytext:se->category:n - - - - - - - - -articletext - - -articletext - - -id -INT -PK - - -language_id -INT -FK - - -article_id -INT -FK - - -name -NVARCHAR(255) - - -slug -NVARCHAR(255) - - -seo? -NVARCHAR(MAX) - - -desc? -NVARCHAR(MAX) - - - -articletext:sw->language:n - - - - - - - - -article - - - - - - - - - - - - -article - - -id -INT -PK - - -unit_id -INT -FK - - -fatherarticle_id -? -INT -FK - - -articlelist_id -? -INT -FK - - -optionslist_id -? -INT -FK - - -brand_id -? -INT -FK - - -sku? -NVARCHAR(100) - - -unitamount -FLOAT - - -weight -FLOAT - - -is_father -BIT - - -fathersort -INT - - -created_at -DATETIME2 - - -updated_at -DATETIME2 - - - -articletext:e->article:n - - - + + + articlehistory - - -articlehistory - - -id -INT -PK - - -article_id -INT -FK - - -date -DATETIME2 - - -text -NVARCHAR(MAX) + + +articlehistory + + +id +INT +PK + + +article_id +INT +FK + + +date +DATETIME2 + + +text +NVARCHAR(MAX) + +articlehistory:e->article:n + + + + + + + + +articleean + + +articleean + + +id +INT +PK + + +article_id +INT +FK + + +ean +NVARCHAR(50) + + + +articleean:se->article:n + + + + + + + + +categoryarticle + + +categoryarticle + + +id +INT +PK + + +article_id +INT +FK + + +category_id +INT +FK + + + +categoryarticle:se->article:n + + + + + + + + +categoryarticle:se->category:n + + + + + + + + +articlelist + + + + +articlelist + + +id +INT +PK + + + +article:sw->articlelist:n + + + + + + + -articlehistory:se->article:n - - - +article:e->article:e + + + + + + + + +optionslist + + + + +optionslist + + +id +INT +PK + + + +article:se->optionslist:n + + + + + + + + +brand + + + + +brand + + +id +INT +PK + + +name +NVARCHAR(255) + + +gsprpinfo? +NVARCHAR(MAX) + + + +article:se->brand:n + + + + + + + + +article:w->unit:n + + + @@ -755,643 +926,496 @@ category:e->category:e - - - - - - - -articleean - - -articleean - - -id -INT -PK - - -article_id -INT -FK - - -ean -NVARCHAR(50) - - - -articleean:se->article:n - - - - - - - - -article:e->article:e - - - - - - - - -articlelist - - - - -articlelist - - -id -INT -PK - - - -article:se->articlelist:n - - - - - - - - -optionslist - - - - -optionslist - - -id -INT -PK - - - -article:se->optionslist:n - - - - - - - - -brand - - - - -brand - - -id -INT -PK - - -name -NVARCHAR(255) - - -gsprpinfo? -NVARCHAR(MAX) - - - -article:e->brand:n - - - - - - - - -article:w->unit:n - - - - - - - - -categoryarticle - - -categoryarticle - - -id -INT -PK - - -category_id -INT -FK - - -article_id -INT -FK - - - -categoryarticle:sw->category:n - - - - - - - - -categoryarticle:sw->article:n - - - + + - + articlelistarticle - - -articlelistarticle - - -id -INT -PK - - -article_id -INT -FK - - -articlelist_id -INT -FK - - -count -INT - - -sort -INT + + +articlelistarticle + + +id +INT +PK + + +articlelist_id +INT +FK + + +article_id +INT +FK + + +count +INT + + +sort +INT - + -articlelistarticle:sw->article:n - - - +articlelistarticle:sw->articlelist:n + + + - - -articlelistarticle:sw->articlelist:n - - - + + +articlelistarticle:sw->article:n + + + optionslistarticle - - -optionslistarticle - - -id -INT -PK - - -article_id -INT -FK - - -optionslist_id -INT -FK - - -count -INT - - -sort -INT - - -mandated -BIT + + +optionslistarticle + + +id +INT +PK + + +article_id +INT +FK + + +optionslist_id +INT +FK + + +count +INT + + +sort +INT + + +mandated +BIT - -optionslistarticle:w->article:n - - - + +optionslistarticle:sw->article:n + + + - + optionslistarticle:sw->optionslist:n - - - - - - - - -categorypic - - -categorypic - - -id -INT -PK - - -category_id -INT -FK - - -pic_id -INT -FK - - -sort -INT - - - -categorypic:w->category:n - - - - - - - - -pic - - - - - -pic - - -id -INT -PK - - -w -INT - - -h -INT - - -size -BIGINT - - -hash -NVARCHAR(64) - - -thumbw -INT - - -thumbh -INT - - -thumbhash -NVARCHAR(64) - - -source -NVARCHAR(MAX) - - - -categorypic:se->pic:n - - - - - - - - -articlepic - - -articlepic - - -id -INT -PK - - -article_id -INT -FK - - -pic_id -INT -FK - - -sort -INT - - - -articlepic:w->article:n - - - - - - - - -articlepic:sw->pic:n - - - + + + - + brandpic - - -brandpic - - -id -INT -PK - - -brand_id -INT -FK - - -pic_id -INT -FK - - -sort -INT + + +brandpic + + +id +INT +PK + + +brand_id +INT +FK + + +pic_id +INT +FK + + +sort +INT - + brandpic:sw->brand:n - - - + + + + + +pic + + + + + +pic + + +id +INT +PK + + +w +INT + + +h +INT + + +size +BIGINT + + +hash +NVARCHAR(64) + + +thumbw +INT + + +thumbh +INT + + +thumbhash +NVARCHAR(64) + + +source +NVARCHAR(MAX) + + +fullbinary +VARBINARY(MAX) + + +thumbbinary +VARBINARY(MAX) + - -brandpic:sw->pic:n - - - + +brandpic:se->pic:n + + + + + + + + +articlepic + + +articlepic + + +id +INT +PK + + +article_id +INT +FK + + +pic_id +INT +FK + + +sort +INT + + + +articlepic:w->article:n + + + + + + + + +articlepic:se->pic:n + + + + + + + + +categorypic + + +categorypic + + +id +INT +PK + + +category_id +INT +FK + + +pic_id +INT +FK + + +sort +INT + + + +categorypic:sw->category:n + + + + + + + + +categorypic:sw->pic:n + + + price - - -price - - -id -INT -PK - - -customergroup_id -INT -FK - - -tax_id -INT -FK - - -article_id -INT -FK - - -minmultiplier -DECIMAL(18,4) - - -net -FLOAT + + +price + + +id +INT +PK + + +article_id +INT +FK + + +customergroup_id +INT +FK + + +tax_id +INT +FK + + +minmultiplier +DECIMAL(18,4) + + +net +FLOAT - + price:sw->customergroup:n - - - + + + - -price:e->article:n - - - + +price:w->article:n + + + - + price:sw->tax:n - - - + + + manifest - - - -manifest - - -id -INT -PK - - -number -NVARCHAR(100) - - -type -NVARCHAR(100) - - -date -DATETIME2 + + + +manifest + + +id +INT +PK + + +number +NVARCHAR(100) + + +type +NVARCHAR(100) + + +date +DATETIME2 manifestarticle - - -manifestarticle - - -id -INT -PK - - -tax_id -INT -FK - - -manifest_id -INT -FK - - -article_id -INT -FK - - -amount -FLOAT - - -net -FLOAT - - -transactedamount -FLOAT - - -comment? -NVARCHAR(MAX) - - -rebate -FLOAT + + +manifestarticle + + +id +INT +PK + + +article_id +? +INT +FK + + +tax_id +INT +FK + + +manifest_id +INT +FK + + +amount +FLOAT + + +net +FLOAT + + +transactedamount +FLOAT + + +comment? +NVARCHAR(MAX) + + +rebate +FLOAT - -manifestarticle:e->article:n - - - + +manifestarticle:w->article:n + + + - + manifestarticle:sw->tax:n - - - + + + - + manifestarticle:sw->manifest:n - - - + + + + + + + + +unit:e->company:n + + + __legend - - - -Legend - -PK - -primary key - -FK - -foreign key - -? - -nullable column - -— - -FOREIGN KEY constraint - -- - - -naming convention only, no constraint + + + +Legend + +PK + +primary key + +FK + +foreign key + +? + +nullable column + +— + +FOREIGN KEY constraint + +- - + +naming convention only, no constraint