如何使这个简单的关系模型适应维度模型?
How to adapt this simple relational model to a dimensional one?
我有这个用于存储自行车模型的相当基本的关系模型。它包含 2 tables:
(modelID, modelName, brandName)
(modelID, type, color, wheelSize, suspension, frameMaterial, brakeManufacturer, gearType, gearModel, yearProduced)
有人要求我将其调整为维度模型。
这些将是维度 tables :
tbl_d_model(modelID, modelName)
tbl_d_brand(brandID, brandName)
tbl_d_color(colorID, color)
tbl_d_type(typeID, type)
tbl_d_wheel(wheelID, wheelSize)
tbl_d_suspension(suspID, suspension)
tbl_d_frameMat(frameID, frameMaterial)
tbl_d_brakeMan(brakeId, brakeManufacturer)
tbl_d_gear(gearID, gearType, gearModel)
这就是事实 table:
tbl_f_fact(modelID, brandID, colorID, typeID, wheelID, suspID, frameID, brakeID, gearID, yearProduced)
这是最佳的实现方式吗?有没有更好的方法?
在维度建模中使用键。
您需要的是一个维度而不是 10 个维度和一个事实 table。
因此
dimension_bycicle(key_bicicle, modelName, brandName, type, color, wheelSize, suspension, frameMaterial, brakeManufacturer, gearType, gearModel, yearProduced, modelId)
请注意,modelId 不是您的自然键(操作系统键,不应用作数据仓库键)。
我有这个用于存储自行车模型的相当基本的关系模型。它包含 2 tables:
(modelID, modelName, brandName)
(modelID, type, color, wheelSize, suspension, frameMaterial, brakeManufacturer, gearType, gearModel, yearProduced)
有人要求我将其调整为维度模型。
这些将是维度 tables :
tbl_d_model(modelID, modelName)
tbl_d_brand(brandID, brandName)
tbl_d_color(colorID, color)
tbl_d_type(typeID, type)
tbl_d_wheel(wheelID, wheelSize)
tbl_d_suspension(suspID, suspension)
tbl_d_frameMat(frameID, frameMaterial)
tbl_d_brakeMan(brakeId, brakeManufacturer)
tbl_d_gear(gearID, gearType, gearModel)
这就是事实 table:
tbl_f_fact(modelID, brandID, colorID, typeID, wheelID, suspID, frameID, brakeID, gearID, yearProduced)
这是最佳的实现方式吗?有没有更好的方法?
在维度建模中使用键。
您需要的是一个维度而不是 10 个维度和一个事实 table。
因此
dimension_bycicle(key_bicicle, modelName, brandName, type, color, wheelSize, suspension, frameMaterial, brakeManufacturer, gearType, gearModel, yearProduced, modelId)
请注意,modelId 不是您的自然键(操作系统键,不应用作数据仓库键)。