Каков наилучший способ сохранить размер объекта в базе данных? - PullRequest
0 голосов
/ 15 июля 2011

Я занимаюсь разработкой базы данных, и мне нужно знать, как лучше всего хранить измерения в базе данных.Некоторые объекты имеют длину, ширину, высоту и глубину.Некоторые имеют только длину и ширину.Как правильно хранить эти данные в базе данных?

Ответы [ 3 ]

1 голос
/ 15 июля 2011

Вы связываете объект с типом измерения, если хотите, чтобы он был нормализован.

Так что, если бы у меня был объект, который имел только длину и ширину

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);
0 голосов
/ 15 июля 2011

Если вы используете MySQL, вот ссылка на числовые типы данных: http://dev.mysql.com/doc/refman/5.0/en/numeric-types.html

Я не уверен, насколько велики размеры, поэтому я не могу сказать вам, что это должно быть. Если вы храните размеры дома в миллиметрах, вам понадобится больший тип данных. Таблица на этой странице покажет вам.

По соображениям производительности. цель состоит в том, чтобы попытаться сохранить только то, что, по вашему мнению, вам понадобится, и не более того.

0 голосов
/ 15 июля 2011

Предполагается, что эта база данных создается для поддержки приложения;Я бы посоветовал не беспокоиться о вашей модели данных, пока вы сначала не определили модель домена.Начните с приложения и для чего оно использует эти размеры.Разработайте базу данных, которая будет поддерживать вашу модель домена.Здесь просто недостаточно информации, чтобы предположить, что вы должны создать две отдельные таблицы с необходимыми столбцами или одну таблицу с ограничениями, допускающими обнуляемость.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...