Если вы пытаетесь сделать дизайн с доменным именем, не начинайте с таблиц. Сначала разработайте концептуальную модель, отражающую ваш базовый домен. Я согласен с ndp: RecipeIngredient - это немного неловкое имя/концепция, с точки зрения DDD.
Я думаю, что модели нужны следующие концепции: Рецепт, Ингредиент, Мера и рецептПодготовка.
Рецепт представляет собой агрегацию ингредиентов. Каждому Ингредиенту, принадлежащему Рецепту, требуется связанная с ним Мера как спецификация для подготовки. Также вам нужно смоделировать RecipePreparation, чтобы связать фактическое количество каждого ингредиента, используемого во время конкретной подготовки рецепта.
A Мера состоит из единицы и количества (например, 2 чашки, 0,5 унции, 250 г, 2 столовые ложки ...).
Я вижу здесь две разные вещи, которые могут быть смешаны во время анализа и должны быть разделены: Рецепт/Ингредиент/Измерение как спецификация для приготовления чего-либо (по одному экземпляру для каждого рецепта) и RecipePreparation/Ingredient/Measure as a бетонная подготовка одного рецепта, выполняемая конкретным человеком в определенный момент, и может быть использована разными способами (удваивает все ингредиенты, потому что спецификация рецепта предназначена для двух тарелок, и у вас есть четыре гостя ... что-то подобное).
Вы можете пойти глубже и начать моделировать такие вещи, как некоторые ингредиенты, имеющие набор сменных ингредиентов (например, если у вас нет козьего сыра, моцарелла), поваренная книга, в которой собираются рецепты той же категории, приготовление пищи время для рецепта и т. д.
Я мог понять, есть ли идентификаторы для ингредиента, если они ссылаются на IngredentNames на разных языках, но это кажется излишним и, возможно, вредным, если вы не хотите, чтобы разные ингредиенты с тем же именем. (Я могу представить себе более одного рецепта тайного пирога бабушки, поэтому наличие некоторых других UID в рецептах имеет смысл) –
Я думаю, что этот вопрос можно было бы переименовать в «Modeling recipes domain» или что-то в этом роде. Дизайн модели домена слишком общий. – JuanZe