exotica
2.07.2013 - 10:16
Всем ку
есть такой вопросик. У меня есть Бумага (пачки с листами бумаги) они имеют следующие характеристики, пример:
80 g/m | gloss | 650x470 | 500
плотность | тип | формат | количество листов в пачке
эти характеристики могут быть самые разные (согласно мировых стандартов производства бумаги)
Как организовать таблицу?
В ближайшем будущем мне нужно будет получить: Занимаемый готовой продукцией объем, ее вес, затраты материалов и т.п.
_____________
[FAQ]Регистрации пользователей, сохранение в БД---------------------------------------------------------------------------
Выходя из ванной, вышел из нее два раза
Структуру таблицы вы уже сами написали, а что касается суммарного объема и т.д. - тут простая математика.
3 таблицы
- бумага
- характеристики
- связь бумаги с характеристиками и значение
_____________
Mysql, Postgresql, Redis, Memcached, Unit Testing, CI, Kohana, Yii, Phalcon, Zend Framework, Joomla, Open Cart, Ymaps, VK Api
exotica
2.07.2013 - 12:01
Цитата |
Структуру таблицы вы уже сами написали, а что касается суммарного объема и т.д. - тут простая математика. |
про математику уже разобрался откуда и куда, и применил пока что необходимые поля, спасиб
Цитата |
3 таблицы - бумага - характеристики - связь бумаги с характеристиками и значение |
Спасибо, характеристик пока не много, но разберу такой вариант, скорее всего пригодится чуть позже
_____________
[FAQ]Регистрации пользователей, сохранение в БД---------------------------------------------------------------------------
Выходя из ванной, вышел из нее два раза
Хотел в поддержку слов
T1grOK найти описание шаблона EAV, но наткнулся на это
http://www.slideshare.net/billkarwin/sql-a...rns-strike-back
exotica
2.07.2013 - 13:14
А вот назрел новый вопрос. Как быть с
НЕцелочисленными значениями?
У меня есть Вес одного квадратного миллиметра бумаги, он равен:
0.0798690671031097 mg
от получается посредством деления общего веса листа в милиграммах на его площадь в миллиметрах.
Вопрос как быть? SQL не хочет хранить это число ну ни в какую)) или я чего то не уловил и пропустил, скажите ребят?
_____________
[FAQ]Регистрации пользователей, сохранение в БД---------------------------------------------------------------------------
Выходя из ванной, вышел из нее два раза
Хранить значение в строке(VARCHAR), так как значение характеристики может быть как строкой, так и целочисленным или дробным значением.(если мы сейчас о характеристиках)
_____________
Mysql, Postgresql, Redis, Memcached, Unit Testing, CI, Kohana, Yii, Phalcon, Zend Framework, Joomla, Open Cart, Ymaps, VK Api
exotica
2.07.2013 - 13:25
Цитата |
http://dev.mysql.com/doc/refman/5.0/en/pre...al-changes.html |
тоже к этому типу полей пришел на какой то сайт, но ничего не получилось. может туго информативный ресурс.
Спасибо за ссылку, прочту через несколько минут..работаа..
Цитата |
Хранить значение в строке(VARCHAR), так как значение характеристики может быть как строкой, так и целочисленным или дробным значением.(если мы сейчас о характеристиках) |
Так точно, это характеристика - "Вес одного квадратного миллиметра бумаги" и у каждой бумаги он будет свой. и это
ИСКЛЮЧИТЕЛЬНО нецелочисленное значение но не в коем случае не текст
Тогда возникает вопрос в чем целесообразнее - удобнее - безопаснее хранить такие числа?
Или же вообще легче хранить целочисленные значения в бд, а для вычислений каждый раз получать эту харрактеристику в скрипте...(но мне кажется это лишняя нагрузка
)
_____________
[FAQ]Регистрации пользователей, сохранение в БД---------------------------------------------------------------------------
Выходя из ванной, вышел из нее два раза
killer8080
2.07.2013 - 13:34
Цитата (exotica @ 2.07.2013 - 12:14) |
У меня есть Вес одного квадратного миллиметра бумаги, он равен: 0.0798690671031097 mg
от получается посредством деления общего веса листа в милиграммах на его площадь в миллиметрах. |
Я бы выбрал другой масштаб единиц. Вы же не станете измерять космические расстояния в миллиметрах
так и тут, нужно выбрать подходящий масштаб единиц, очевидно, что это не миллиграммы
exotica
2.07.2013 - 13:52
Цитата |
очевидно, что это не миллиграммы |
согласен, но в противоположную сторону
в целях достижения наибольшей точности я бы хотел считать вес 100 квадратных микрон полотна. Но в таком случае миллиграммы не подходят нужны более мелкие единицы.
Вся суть именно в точности, конечные объемы продукции не известны, поэтому если один лист A4 будет весить не 4.3 г как по моей формуле, а 4.6 г допустим (если грубо округлить доли числа) то 500000 листов продукции будут весить не 2150 кг , а уже 2300 кг, а лишние 150 кг веса это серьезная погрешность, при воздушных или морских транспортировках. Не вспоминая уже о самом банальном, что в газель взявшую 1800 кг товара не влезет еще 150 кг потому что она развалится ))))
понимаете о чем я?)
_____________
[FAQ]Регистрации пользователей, сохранение в БД---------------------------------------------------------------------------
Выходя из ванной, вышел из нее два раза
killer8080
2.07.2013 - 14:02
Цитата (exotica @ 2.07.2013 - 12:52) |
Вся суть именно в точности, конечные объемы продукции не известны, поэтому если один лист A4 будет весить не 4.3 г как по моей формуле, а 4.6 г допустим (если грубо округлить доли числа) то 500000 листов продукции будут весить не 2150 кг , а уже 2300 кг, а лишние 150 кг веса это серьезная погрешность, при воздушных или морских транспортировках. Не вспоминая уже о самом банальном, что в газель взявшую 1800 кг товара не влезет еще 150 кг потому что она развалится )))) |
хм, ну так и измеряй тогда вес пачки, зачем нужны квадратные миллиметры?
exotica
2.07.2013 - 14:18
Цитата |
хм, ну так и измеряй тогда вес пачки, зачем нужны квадратные миллиметры? |
Так мы не к тому пришли, пачки как они есть и их параметры и характеристики применятся будут для другого.
В данном случае пользователю показана форма, он на ней выбирает:- Формат своего изделия(бланка, листа) - (А3, А4, и т.д.)
- Вписывает колличество экземпляров - (поштучно)
- Выбирает из <select> Плотность бумаги - (т.к. он должен знать на какой бумаге он делал изделие)
- Выбирает из второго <select> ее тип - (т.е. Gloss, Silk и т.д.)
- Отправляет обработчику
Скрипт ДОСТАЕТ вес одного кв.миллиметра бумаги ИЗ `таблицы` ГДЕ `плотность`=выбранная плотность И `тип`=выбранный тип
И производит простейшие арифметические дейтвия:- Умножает этот кв.мм на выбраную пользователем площадь листа и умножает на колличество, после чего переводит в более наглядные и читаемые единицы
- После чего дополнительно производит расчет зависимости от влажности и генерирует страницу результата где выводит три значения: при большой, умереной и малой влажности.
както так в кратце)
_____________
[FAQ]Регистрации пользователей, сохранение в БД---------------------------------------------------------------------------
Выходя из ванной, вышел из нее два раза
glock18
2.07.2013 - 14:24
Цитата (T1grOK @ 2.07.2013 - 07:23) |
3 таблицы - бумага - характеристики - связь бумаги с характеристиками и значение |
это только в крайнем случае советую использовать. Когда параметров много и сплошь разные
glock18
2.07.2013 - 14:26
Цитата (exotica @ 2.07.2013 - 09:52) |
Вся суть именно в точности, конечные объемы продукции не известны, поэтому если один лист A4 будет весить не 4.3 г как по моей формуле, а 4.6 г допустим (если грубо округлить доли числа) то 500000 листов продукции будут весить не 2150 кг , а уже 2300 кг, а лишние 150 кг веса это серьезная погрешность, при воздушных или морских транспортировках. Не вспоминая уже о самом банальном, что в газель взявшую 1800 кг товара не влезет еще 150 кг потому что она развалится )))) |
стандартный double такой погрешности не даст, уверяю вас. Вы скорее всего брали какой-то decimal c небольшим кол-вом знаков после запятой
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.