[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Как правильно организовать таблицу sql?
Страницы: 1, 2
exotica
Всем ку wink.gif есть такой вопросик. У меня есть Бумага (пачки с листами бумаги) они имеют следующие характеристики, пример:

80 g/m | gloss | 650x470 | 500
плотность | тип | формат | количество листов в пачке

эти характеристики могут быть самые разные (согласно мировых стандартов производства бумаги)

Как организовать таблицу?


В ближайшем будущем мне нужно будет получить: Занимаемый готовой продукцией объем, ее вес, затраты материалов и т.п.

_____________
[FAQ]Регистрации пользователей, сохранение в БД
---------------------------------------------------------------------------
Выходя из ванной, вышел из нее два раза
Splaer
Структуру таблицы вы уже сами написали, а что касается суммарного объема и т.д. - тут простая математика.
T1grOK
3 таблицы
- бумага
- характеристики
- связь бумаги с характеристиками и значение

_____________
Mysql, Postgresql, Redis, Memcached, Unit Testing, CI, Kohana, Yii, Phalcon, Zend Framework, Joomla, Open Cart, Ymaps, VK Api
exotica
Цитата
Структуру таблицы вы уже сами написали, а что касается суммарного объема и т.д. - тут простая математика.

про математику уже разобрался откуда и куда, и применил пока что необходимые поля, спасиб
Цитата
3 таблицы
- бумага
- характеристики
- связь бумаги с характеристиками и значение

Спасибо, характеристик пока не много, но разберу такой вариант, скорее всего пригодится чуть позже wink.gif

_____________
[FAQ]Регистрации пользователей, сохранение в БД
---------------------------------------------------------------------------
Выходя из ванной, вышел из нее два раза
kaww
Хотел в поддержку слов T1grOK найти описание шаблона EAV, но наткнулся на это http://www.slideshare.net/billkarwin/sql-a...rns-strike-back
exotica
А вот назрел новый вопрос. Как быть с НЕцелочисленными значениями?

У меня есть Вес одного квадратного миллиметра бумаги, он равен:
0.0798690671031097 mg

от получается посредством деления общего веса листа в милиграммах на его площадь в миллиметрах.

Вопрос как быть? SQL не хочет хранить это число ну ни в какую)) или я чего то не уловил и пропустил, скажите ребят?

_____________
[FAQ]Регистрации пользователей, сохранение в БД
---------------------------------------------------------------------------
Выходя из ванной, вышел из нее два раза
T1grOK
Хранить значение в строке(VARCHAR), так как значение характеристики может быть как строкой, так и целочисленным или дробным значением.(если мы сейчас о характеристиках)

_____________
Mysql, Postgresql, Redis, Memcached, Unit Testing, CI, Kohana, Yii, Phalcon, Zend Framework, Joomla, Open Cart, Ymaps, VK Api
exotica
Цитата
http://dev.mysql.com/doc/refman/5.0/en/pre...al-changes.html


тоже к этому типу полей пришел на какой то сайт, но ничего не получилось. может туго информативный ресурс.

Спасибо за ссылку, прочту через несколько минут..работаа.. wink.gif

Цитата
Хранить значение в строке(VARCHAR), так как значение характеристики может быть как строкой, так и целочисленным или дробным значением.(если мы сейчас о характеристиках)

Так точно, это характеристика - "Вес одного квадратного миллиметра бумаги" и у каждой бумаги он будет свой. и это ИСКЛЮЧИТЕЛЬНО нецелочисленное значение но не в коем случае не текст smile.gif

Тогда возникает вопрос в чем целесообразнее - удобнее - безопаснее хранить такие числа?

Или же вообще легче хранить целочисленные значения в бд, а для вычислений каждый раз получать эту харрактеристику в скрипте...(но мне кажется это лишняя нагрузка huh.gif )

_____________
[FAQ]Регистрации пользователей, сохранение в БД
---------------------------------------------------------------------------
Выходя из ванной, вышел из нее два раза
killer8080
Цитата (exotica @ 2.07.2013 - 12:14)
У меня есть Вес одного квадратного миллиметра бумаги, он равен:
0.0798690671031097 mg

от получается посредством деления общего веса листа в милиграммах на его площадь в миллиметрах.

Я бы выбрал другой масштаб единиц. Вы же не станете измерять космические расстояния в миллиметрах rolleyes.gif так и тут, нужно выбрать подходящий масштаб единиц, очевидно, что это не миллиграммы smile.gif
exotica
Цитата
очевидно, что это не миллиграммы


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

Вся суть именно в точности, конечные объемы продукции не известны, поэтому если один лист A4 будет весить не 4.3 г как по моей формуле, а 4.6 г допустим (если грубо округлить доли числа) то 500000 листов продукции будут весить не 2150 кг , а уже 2300 кг, а лишние 150 кг веса это серьезная погрешность, при воздушных или морских транспортировках. Не вспоминая уже о самом банальном, что в газель взявшую 1800 кг товара не влезет еще 150 кг потому что она развалится ))))

понимаете о чем я?)

_____________
[FAQ]Регистрации пользователей, сохранение в БД
---------------------------------------------------------------------------
Выходя из ванной, вышел из нее два раза
killer8080
Цитата (exotica @ 2.07.2013 - 12:52)
Вся суть именно в точности, конечные объемы продукции не известны, поэтому если один лист A4 будет весить не 4.3 г как по моей формуле, а 4.6 г допустим (если грубо округлить доли числа) то 500000 листов продукции будут весить не 2150 кг , а уже 2300 кг, а лишние 150 кг веса это серьезная погрешность, при воздушных или морских транспортировках. Не вспоминая уже о самом банальном, что в газель взявшую 1800 кг товара не влезет еще 150 кг потому что она развалится ))))

хм, ну так и измеряй тогда вес пачки, зачем нужны квадратные миллиметры? rolleyes.gif
exotica
Цитата
хм, ну так и измеряй тогда вес пачки, зачем нужны квадратные миллиметры?

Так мы не к тому пришли, пачки как они есть и их параметры и характеристики применятся будут для другого.
В данном случае пользователю показана форма, он на ней выбирает:
  • Формат своего изделия(бланка, листа) - (А3, А4, и т.д.)
  • Вписывает колличество экземпляров - (поштучно)
  • Выбирает из <select> Плотность бумаги - (т.к. он должен знать на какой бумаге он делал изделие)
  • Выбирает из второго <select> ее тип - (т.е. Gloss, Silk и т.д.)
  • Отправляет обработчику

Скрипт ДОСТАЕТ вес одного кв.миллиметра бумаги ИЗ `таблицы` ГДЕ `плотность`=выбранная плотность И `тип`=выбранный тип

И производит простейшие арифметические дейтвия:
  • Умножает этот кв.мм на выбраную пользователем площадь листа и умножает на колличество, после чего переводит в более наглядные и читаемые единицы
  • После чего дополнительно производит расчет зависимости от влажности и генерирует страницу результата где выводит три значения: при большой, умереной и малой влажности.

както так в кратце)


_____________
[FAQ]Регистрации пользователей, сохранение в БД
---------------------------------------------------------------------------
Выходя из ванной, вышел из нее два раза
glock18
Цитата (T1grOK @ 2.07.2013 - 07:23)
3 таблицы
- бумага
- характеристики
- связь бумаги с характеристиками и значение

это только в крайнем случае советую использовать. Когда параметров много и сплошь разные
glock18
Цитата (exotica @ 2.07.2013 - 09:52)
Вся суть именно в точности, конечные объемы продукции не известны, поэтому если один лист A4 будет весить не 4.3 г как по моей формуле, а 4.6 г допустим (если грубо округлить доли числа) то 500000 листов продукции будут весить не 2150 кг , а уже 2300 кг, а лишние 150 кг веса это серьезная погрешность, при воздушных или морских транспортировках. Не вспоминая уже о самом банальном, что в газель взявшую 1800 кг товара не влезет еще 150 кг потому что она развалится ))))


стандартный double такой погрешности не даст, уверяю вас. Вы скорее всего брали какой-то decimal c небольшим кол-вом знаков после запятой
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.