Skip to main content

Note on Shopify and Car DB design 20-Jan-2021

TODO bash crawl shopify variants / products data. 

https://stackoverflow.com/questions/18132144/handle-race-condition-between-2-cron-tasks-what-is-the-best-approach

https://dba.stackexchange.com/questions/235242/database-design-for-cars

The automotive industry has plenty of exceptions, complicating such a project. For example, the Ford Escort ZX2 was marketed as a trimline of the Escort for the first couple of years, then stood alone as just "Ford ZX2" (with bumper emboss to match) starting in MY1999. So was it a submodel, or a standalone model, which happened to be named in reference to another model? Did it go from one to the other in 1998?

CREATE TABLE Manufacturers

(

ManufacturerID  SMALLINT NOT NULL AUTO_INCREMENT PRIMARY KEY,

ParentManufacturerID    SMALLINT REFERENCES Manufacturers (ManufacturerID),

ManufacturerName    VARCHAR(100) NOT NULL UNIQUE

);


CREATE TABLE Models

(

ModelID INT NOT NULL AUTO_INCREMENT PRIMARY KEY,

ModelName   VARCHAR(100) NOT NULL,

CombinedName    VARCHAR(100) NOT NULL UNIQUE  -- Generally, the manufacturer name || ' ' || model name

);


CREATE TABLE BodyStyles

(

BodyStyleID SMALLINT NOT NULL AUTO_INCREMENT PRIMARY KEY,

BodyStyleName   VARCHAR(100) NOT NULL UNIQUE

);


CREATE TABLE `Lines`

(

LineID  INT NOT NULL AUTO_INCREMENT PRIMARY KEY,

-- Foreign keys

ManufacturerID  SMALLINT NOT NULL REFERENCES Manufacturers (ManufacturerID),

ModelID INT NOT NULL REFERENCES Models (ModelID),

BodyStyleID SMALLINT NOT NULL REFERENCES BodyStyles (BodyStyleID),

-- Attributes

ModelYear   DECIMAL(5, 1) NOT NULL,

PowerSystem VARCHAR(30),

Seating TINYINT NOT NULL,

SubModelName    VARCHAR(100),

TrimLineName    VARCHAR(100),

UNIQUE (ManufacturerID, ModelID, BodyStyleID, ModelYear, PowerSystem, Seating, SubModelName, TrimLineName)

);



Comments

Popular posts from this blog

Rand mm 10

https://stackoverflow.com/questions/2447791/define-vs-const Oh const vs define, many time I got unexpected interview question. As this one, I do not know much or try to study this. My work flow, and I believe of many programmer is that search topic only when we have task or job to tackle. We ignore many 'basic', 'fundamental' documents, RTFM is boring. So I think it is a trade off between the two way of study language. And I think there are a bridge or balanced way to extract both advantage of two method. There are some huge issue with programmer like me that prevent we master some technique that take only little time if doing properly. For example, some Red Hat certificate program, lesson, course that I have learned during Collage gave our exceptional useful when it cover almost all topic while working with Linux. I remember it called something like RHEL (RedHat Enterprise Linux) Certificate... I think there are many tons of documents, guide n books about Linux bu

Martin Fowler - Software Architecture - Making Architecture matter

  https://martinfowler.com/architecture/ One can appreciate the point of this presentation when one's sense of code smell is trained, functional and utilized. Those controlling the budget as well as developer leads should understand the design stamina hypothesis, so that the appropriate focus and priority is given to internal quality - otherwise pay a high price soon. Andrew Farrell 8 months ago I love that he was able to give an important lesson on the “How?” of software architecture at the very end: delegate decisions to those with the time to focus on them. Very nice and straight-forward talk about the value of software architecture For me, architecture is the distribution of complexity in a system. And also, how subsystems communicate with each other. A battle between craftmanship and the economics and economics always win... https://hackernoon.com/applying-clean-architecture-on-web-application-with-modular-pattern-7b11f1b89011 1. Independent of Frameworks 2. Testable 3. Indepe