У меня есть вопрос, касающийся дробей, десятичных дробей и рецептов.
Давайте разберемся с очевидным.Это не домашнее задание (у меня уже есть два диплома колледжа, мне больше не нужно).Это для моего единственного личного проекта.
Ситуация такая.У меня есть база данных рецептов.Он уже используется в программе, которую я написал, исключительно для личного использования.В настоящее время я храню количества для рецептов как Varchars.Пример 1/3 чашки хранится как 1/3 в поле количества varchar, а чашка хранится в поле измерения varchar.В настоящее время программа позволяет мне выбирать рецепты и выкладывать список покупок.
Теперь очевидная проблема заключается в том, что если мне нужен 1 лук для одного рецепта и 1/2 лука для другого рецепта, я получаю двастроки в моем списке покупок ингредиентов.Я заинтересован в том, чтобы найти способ хранения количества ингредиентов таким образом, чтобы я мог добавлять их, когда собираюсь составить список покупок.
Упрощенная версия моего текущего RecipeIngredientTable
RecipeID Links to Recipe table
IngredientID Links to Ingredient table
qty - varchar - for 1/3, 1, .33, etc
measurement - varchar - for Cups, grams, ounces, etc (I am toying with splitting this into its own table as well, but that's for later)
Я посмотрел на преобразование дробей в десятичные дроби (первый вариант, который я придумал), но сразу наткнулся на контрольно-пропускной пункт.Скажем, три разных рецепта требуют 1/3 стакана молока.Теперь, когда вы добавите это, он станет одной чашкой.Но если я преобразую каждую из 1/3 чашек в десятичную (.33), то добавлю это вместе 3 раза, и получу 0,99 или 99/100.
Как бы я справился с преобразованием этого обратнодо дроби (в данном случае целое число)?Я не уверен, должно ли это быть сделано на стороне сервера sql или в моем коде на C #.
Я также поигрался с идеей таблицы поиска с более распространенными дробными и десятичными переводами (1.4 = 0.25, 11/ 16 = 0,6875, 1/8 = 0,125 и т. Д.) И найдите способ использовать код C # для преобразования десятичной дроби обратно в дробь для каждого отдельного ингредиента, а затем перепрыгивать через обручи в коде, чтобы начать добавлять дроби вместе.
Буду признателен за любые предложения.
В качестве примечания, я понимаю, что когда я реализую новое хранилище количества в базе данных, мне придется конвертировать существующие рецепты.Я разберусь с этим позже.