405 lines
9.2 KiB
Plaintext
405 lines
9.2 KiB
Plaintext
@startuml
|
||
frame AS_IS_ALL_SCHEME {
|
||
skinparam linetype ortho
|
||
scale 2500*1700
|
||
|
||
entity "search_availability_flag_{guid_office}" as availability {
|
||
* id : int auto_increment "PK"
|
||
--
|
||
*product : char(36)
|
||
*is_availability : tinyint(1)
|
||
*create_at : timestamp
|
||
*update_at : timestamp
|
||
--
|
||
unique (product)
|
||
}
|
||
|
||
entity "search_remaining_{guid_office}" as remaining {
|
||
* id: int auto_increment "PK"
|
||
--
|
||
*product: char(36)
|
||
*remaining: int
|
||
*create_at: timestamp
|
||
*update_at: timestamp
|
||
--
|
||
unique (product)
|
||
}
|
||
|
||
entity "search_check" as search_check {
|
||
*id: int auto_increment "PK"
|
||
--
|
||
*locality: char(36)
|
||
*product: char(36)
|
||
*update_at: timestamp
|
||
--
|
||
unique(locality, product)
|
||
}
|
||
entity "search_localities_offices" as localities_offices {
|
||
*id: int auto_increment "PK"
|
||
--
|
||
*locality_guid: char(36)
|
||
*office_guid: char(36)
|
||
*is_active: tinyint(1)
|
||
--
|
||
unique (office_guid)
|
||
}
|
||
|
||
|
||
|
||
|
||
|
||
entity "search_countries" as countries {
|
||
*id: int auto_increment "PK"
|
||
--
|
||
*code varchar(3)
|
||
*name: varchar(256)
|
||
*full_name: varchar(256)
|
||
*alpha_2: varchar(2)
|
||
*alpha_3: varchar(3)
|
||
--
|
||
unique (code)
|
||
}
|
||
entity "search_prices_types_localities" as prices_types_localities {
|
||
*id: int auto_increment "PK"
|
||
--
|
||
*hash: char(40)
|
||
*locality_guid: char(36)
|
||
*price_type_guid: char(36)
|
||
*type: varchar(128)
|
||
--
|
||
unique (hash)
|
||
}
|
||
|
||
entity "search_prices_types_products" as prices_types_products {
|
||
*id: int auto_increment "PK"
|
||
--
|
||
*hash: char(40)
|
||
*product_guid: char(36)
|
||
*price_type_guid: char(36)
|
||
*price: decimal(10, 2)
|
||
*updated_at: timestamp
|
||
--
|
||
unique (hash)
|
||
}
|
||
|
||
entity "search_products_relevancy_counts" as products_relevancy_counts {
|
||
*id: bigint: auto_increment "PK"
|
||
--
|
||
*product_guid: char(36)
|
||
*orders: int(11)
|
||
*views: int(11)
|
||
*reviews: int(11)
|
||
*updated_at: timestamp
|
||
--
|
||
unique (product_guid)
|
||
}
|
||
|
||
entity "search_products_relevancy_data_items" as relevancy_data_items {
|
||
*id: bigint: auto_increment "PK"
|
||
--
|
||
*hash: char(40)
|
||
*product_guid: char(36)
|
||
*manufacter_guid: char(36)
|
||
*seo_position: int
|
||
*koef_sort: float
|
||
*updated_at: timestamp
|
||
--
|
||
unique (hash)
|
||
}
|
||
|
||
entity "search_products_sort_rating" as products_sort_rating {
|
||
*id: bigint: auto_increment "PK"
|
||
--
|
||
*product_guid: char(36)
|
||
*rating: float
|
||
*updated_at: timestamp
|
||
--
|
||
unique (product_guid)
|
||
}
|
||
|
||
entity "search_manufacturers_settings" as manufacturers_settings {
|
||
*id: int auto_increment "PK"
|
||
--
|
||
*manufacturer_guid: char(36)
|
||
*locality_guid: char(36)
|
||
*is_hide: tinyint(1)
|
||
*updated_at: timestamp
|
||
*created_at: timestamp
|
||
--
|
||
unique (manufacturer_guid, locality_guid)
|
||
}
|
||
|
||
entity "search_manufacturers" as manufacturers {
|
||
*id: int auto_increment "PK"
|
||
--
|
||
*guid: char(36)
|
||
*name: varchar(256)
|
||
*is_our: tinyint(1)
|
||
*description: varchar(256)
|
||
*updated_at: timestamp
|
||
--
|
||
unique (guid)
|
||
}
|
||
|
||
entity "search_products" as products {
|
||
*id: int auto_increment "PK"
|
||
--
|
||
*is_consumable: tinyint(1)
|
||
*is_on_site: tinyint(1)
|
||
*is_visible: tinyint(1)
|
||
*status: smallint
|
||
*is_discountinued: tinyint(1)
|
||
*is_for_order: tinyint(1)
|
||
*sku: int
|
||
*height: float
|
||
*lenght: float
|
||
*width: float
|
||
*guid: char(36)
|
||
*manufacter_guid: char(36)
|
||
*name_site: varchar(256)
|
||
*category: char(36)
|
||
*name_pdm: varchar(256)
|
||
*name_wtis: varchar(256)
|
||
*name_contractor: varchar(256)
|
||
*keywords: varchar(256)
|
||
*lights: varchar(20)
|
||
*country_code: varchar(3)
|
||
*uri: text
|
||
*advantages: text
|
||
*description: text
|
||
*equipment: text
|
||
*features: text
|
||
*updated_at: timestamp
|
||
--
|
||
unique (guid)
|
||
}
|
||
|
||
entity "search_products_categories" as products_categories {
|
||
*id: int auto_increment "PK"
|
||
--
|
||
*hash: char(40)
|
||
*product_guid: char(36)
|
||
*category_guid: char(36)
|
||
*is_enabled: tinyint(1)
|
||
*updated_at: timestamp
|
||
--
|
||
unique (hash)
|
||
}
|
||
|
||
entity "search_categories_settings" as categories_settings {
|
||
*id: int auto_increment "PK"
|
||
--
|
||
*category_guid: char(36)
|
||
*locality_guid: char(36)
|
||
*is_hide: tinyint(1)
|
||
*updated_at: timestamp
|
||
*created_at: timestamp
|
||
--
|
||
unique (category_guid, locality_guid)
|
||
}
|
||
|
||
entity "search_categories_relationship" as categories_relationship {
|
||
*id: int auto_increment "PK"
|
||
--
|
||
*parent: char(36)
|
||
*child: char(36)
|
||
*main: tinyint(1)
|
||
*level: int
|
||
*line: int
|
||
*created_at: timestamp
|
||
}
|
||
|
||
entity "search_categories" as categories {
|
||
*id: int auto_increment "PK"
|
||
--
|
||
*guid: char(36)
|
||
name: varchar(256)
|
||
type: varchar(256)
|
||
parent_guid: char(36)
|
||
is_active: tinyint(1)
|
||
is_enable: tinyint(1)
|
||
up_caption: varchar(256)
|
||
updated_at: timestamp
|
||
--
|
||
unique (guid)
|
||
}
|
||
|
||
entity "search_products_sale" as product_sale {
|
||
*id: bigint: auto_increment "PK"
|
||
--
|
||
*hash: char(40)
|
||
*guid: char(36)
|
||
*product_guid: char(36)
|
||
*locality_guid: char(36)
|
||
remaining: int
|
||
price: float
|
||
updated_at: timestamp
|
||
--
|
||
unique (hash)
|
||
}
|
||
|
||
entity "search_promotions" as promotions {
|
||
*id: int: auto_increment "PK"
|
||
--
|
||
*product_guid: char(36)
|
||
*locality_guid char(36)
|
||
*name: varchar(256)
|
||
*updated_at: timestamp
|
||
}
|
||
|
||
entity "search_specifications_bool" as specifications_bool {
|
||
*id: int auto_increment "PK"
|
||
--
|
||
*hash: char(40)
|
||
*product_guid: char(36)
|
||
*guid: char(36)
|
||
*name: varchar(256)
|
||
*unit: varchar(256)
|
||
*description: text
|
||
*value: tinyint(1)
|
||
*updated_at: timestamp
|
||
--
|
||
unique (hash)
|
||
}
|
||
|
||
entity "search_specifications_collection" as specifications_collection {
|
||
*id: int auto_increment "PK"
|
||
--
|
||
*hash: char(40)
|
||
*product_guid: char(36)
|
||
*guid: char(36)
|
||
*name: varchar(256)
|
||
*unit: varchar(256)
|
||
*description: text
|
||
*value: varchar(256)
|
||
*value_guid: char(36)
|
||
*updated_at: timestamp
|
||
--
|
||
unique (hash)
|
||
}
|
||
|
||
entity "search_specifications_float" as specifications_float {
|
||
*id: int auto_increment "PK"
|
||
--
|
||
*hash: char(40)
|
||
*product_guid: char(36)
|
||
*guid: char(36)
|
||
*name: varchar(256)
|
||
*unit: varchar(256)
|
||
*description: text
|
||
*value: float
|
||
*updated_at: timestamp
|
||
--
|
||
unique (hash)
|
||
}
|
||
|
||
entity "search_specifications_int" as specifications_int {
|
||
*id: int auto_increment "PK"
|
||
--
|
||
*hash: char(40)
|
||
*product_guid: char(36)
|
||
*guid: char(36)
|
||
*name: varchar(256)
|
||
*unit: varchar(256)
|
||
*description: text
|
||
*value: int
|
||
*updated_at: timestamp
|
||
--
|
||
unique (hash)
|
||
}
|
||
|
||
entity "search_specifications_range" as specifications_range {
|
||
*id: int auto_increment "PK"
|
||
--
|
||
*hash: char(40)
|
||
*product_guid: char(36)
|
||
*guid: char(36)
|
||
*name: varchar(256)
|
||
*unit: varchar(256)
|
||
*description: text
|
||
*value_gte: float
|
||
*value_lte: float
|
||
*updated_at: timestamp
|
||
--
|
||
unique (hash)
|
||
}
|
||
|
||
entity "search_specifications_text" as specifications_text {
|
||
*id: int auto_increment "PK"
|
||
--
|
||
*hash: char(40)
|
||
*product_guid: char(36)
|
||
*guid: char(36)
|
||
*name: varchar(256)
|
||
*unit: varchar(256)
|
||
*description: text
|
||
*value: varchar(256)
|
||
*updated_at: timestamp
|
||
--
|
||
unique (hash)
|
||
}
|
||
entity "search_locality" as locality {
|
||
*id: mediumint(9) auto_increment "PK"
|
||
--
|
||
*name: char(50)
|
||
*english_name: varchar(255)
|
||
*areg_id: char(36)
|
||
*is_enabled: tinyint(1)
|
||
}
|
||
|
||
entity "search_dates_sync" as dates_sync {
|
||
*id: int auto_increment "PK"
|
||
--
|
||
*is_successful tinyint(1)
|
||
*'system': text
|
||
*message: text
|
||
*date: datetime
|
||
}
|
||
|
||
'Связи
|
||
products -d----> specifications_bool
|
||
specifications_bool -r-> specifications_range
|
||
specifications_bool -r-> specifications_text
|
||
specifications_bool -r-> specifications_collection
|
||
specifications_bool -r-> specifications_int
|
||
specifications_bool -r-> specifications_float
|
||
'products -d---> specifications_range
|
||
'products -d---> specifications_text
|
||
'products -d---> specifications_collection
|
||
'products -d---> specifications_int
|
||
'products -d---> specifications_float
|
||
|
||
note left of specifications_bool: Все таблицы с тх связаны с \nтаблицей товаров по product_guid
|
||
products -l--> manufacturers
|
||
manufacturers -l-> manufacturers_settings
|
||
|
||
prices_types_localities -> localities_offices
|
||
prices_types_products -> prices_types_localities
|
||
|
||
products -d--> promotions
|
||
products -d--> availability
|
||
products -d--> search_check
|
||
products --> remaining
|
||
|
||
|
||
products -r--> relevancy_data_items
|
||
product_sale -> localities_offices
|
||
promotions -> localities_offices
|
||
|
||
products -l--> prices_types_products
|
||
|
||
products -u-> categories
|
||
products -> products_relevancy_counts
|
||
products -> product_sale
|
||
products -> products_sort_rating
|
||
|
||
|
||
categories -> categories_relationship
|
||
categories -> categories_settings
|
||
|
||
products_categories -> products
|
||
products_categories -> categories
|
||
|
||
}
|
||
@enduml
|