Рецепт Ингредиента Преобразования - PullRequest
0 голосов
/ 16 сентября 2018

У меня есть вопрос, касающийся дробей, десятичных дробей и рецептов.

Давайте разберемся с очевидным.Это не домашнее задание (у меня уже есть два диплома колледжа, мне больше не нужно).Это для моего единственного личного проекта.

Ситуация такая.У меня есть база данных рецептов.Он уже используется в программе, которую я написал, исключительно для личного использования.В настоящее время я храню количества для рецептов как 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 # для преобразования десятичной дроби обратно в дробь для каждого отдельного ингредиента, а затем перепрыгивать через обручи в коде, чтобы начать добавлять дроби вместе.

Буду признателен за любые предложения.

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

1 Ответ

0 голосов
/ 16 сентября 2018

Хорошо, я собираюсь использовать ответы Дэна и Гарра.

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

Что касается ответа Гарра, то это ПОЦЕЛУЙ в его простоте. Я очень задумался над этой проблемой. Мне нравится идея округления до ближайшего целого числа. Это позволит мне добавить десятичные дроби из базы данных и выяснить, в основном, сколько мне нужно элемента.

Спасибо вам обоим. Я просто хотел бы, чтобы был способ принять комментарий в качестве ответа.

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