Здесь есть 5 полусвязанных таблиц, с соответствующими ключами:
Product
[ID]
Option
[ProductID]
Option_OptionGroupValue
[Option.ID] [OptionGroupValue.ID]
OptionGroupValue
[OptionGroup.ID]
OptionGroup
Что происходит, если продукту может быть назначено несколько строк в таблице «Опция».
Эта таблица Option
связана с таблицей OptionGroupValue
через Option_OptionGroupValue
, которая создает комбинацию OptionGroupValue
в таблице Option_OptionGroupValue
.
В приложении есть многократные поля, подобные этому:
<input type="hidden" name="productid" "[ID]">
<select name="optiongroup_<%=OptionGroup.ID%>">
<option value="<%=OptionGroupValue.ID%>"> <%=OptionGroupValue.Name%> </option>
</select>
Правило состоит в том, что может быть только одна уникальная комбинация всех этих OptionGroupValue
в каждом Product
+ Option
.
Например, в веб-приложении:
Product: [ProductID 100]
New Options [Option] Table:
Color [OptionGroupID 100] : Black [OptionGroupValueID 100]
Size [OptionGroupID 101]: Small [OptionGroupValueID 105]
Width [OptionGroupID 102]: Large [OptionGroupValueID 108]
При отправке необходимо проверить, существует эта комбинация или нет.
Я пробовал циклически проходить для каждого Option
внутри приложения с продуктом, чтобы переключать bIsUniqueOption = True/False
на основе сценария If каждого (ProductID, OptionGroupID, OptionGroupValueID) Exists
, но, к сожалению, кажется, что он не уникален .
Я на самом деле не ищу код, но скорее общий подход к чему-то подобному, если кто-то там сталкивался с чем-то подобным. Если кто-то может запрыгнуть в чат, это действительно будет оценено. Я начинаю терять это, просто думая о .. = /