在数据库中存储对象维度的最佳方法是什么?

时间:2011-07-15 17:46:12

标签: database database-design

我正在开发一个数据库,需要知道在数据库中存储维度的最佳方法。有些物体有长度,宽度,高度和宽度。深度。有些只有长度和宽度。如何在数据库中正确存储这些数据?

3 个答案:

答案 0 :(得分:1)

如果要对象进行规范化,则可以将对象与维度类型相关联。

所以如果我有一个只有长度和宽度的物体

Object1 Width  10ft
Object1 Length 20ft

许多边桌,其中许多是dimensions的类型,一边是Object

这是另一个例子,你给出了长度,宽度,高度,深度:

Object2 Width 10ft
Object2 Length 10ft
Object2 Height...
Object2 Depth...

这里的关键是你有一个指向许多边桌(维度)的单边桌(对象)。某些对象可以具有其他维度没有任何维度的维度(例如,一个点)。我不知道你的桌子布局,但你可以有这样的效果:

Object
ObjectID

Dimension
DimensionID

ObjectDimension
ObjectID
DimensionID
Value

INSERT INTO Object(ObjectID) VALUES("Square");
INSERT INTO Object(ObjectID) VALUES("Point");

INSERT INTO Dimension(DimensionID) VALUES("L"); //for length
INSERT INTO Dimension(DimensionID) VALUES("W"); //for width

INSERT INTO ObjectDimension(ObjectID, DimensionID, Value) VALUES ("Square", "L", 5);
INSERT INTO ObjectDimension(ObjectID, DimensionID, Value) VALUES ("Square", "W", 5);

答案 1 :(得分:0)

假设正在创建此数据库以支持应用程序;在您首先定义域模型之前,我建议不要担心您的数据模型。从应用程序开始,以及它使用这些维度的内容。设计一个支持您的域模型的数据库。这里没有足够的信息来建议您应该创建两个单独的表,其中包含所需的列,或者一个表具有可为空的约束。

答案 2 :(得分:0)

如果您使用的是MySQL,则引用数字数据类型:http://dev.mysql.com/doc/refman/5.0/en/numeric-types.html

我不确定尺寸有多大,所以我无法告诉你应该是什么。如果您以毫米为单位存储房屋的尺寸,则需要更大的数据类型。该页面上的表格会告诉你。

出于性能原因。我们的目标是尽量只存储你认为你需要的东西而不仅仅是那个。