我正在开发一个数据库,需要知道在数据库中存储维度的最佳方法。有些物体有长度,宽度,高度和宽度。深度。有些只有长度和宽度。如何在数据库中正确存储这些数据?
答案 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
我不确定尺寸有多大,所以我无法告诉你应该是什么。如果您以毫米为单位存储房屋的尺寸,则需要更大的数据类型。该页面上的表格会告诉你。
出于性能原因。我们的目标是尽量只存储你认为你需要的东西而不仅仅是那个。