![]() |
|
|
#1
|
||||
|
||||
![]() Я запутался.
Есть некие товары. Я хочу логических их разделить по группам, для упрощения жизни пользователям: выбрал из списка группу и товары,принадлежащие этим группам автоматом попали в grid для редактирования. Казалось бы заведи поле в товарах и суй туда признак принадлежности к группе, но проблема в том, что каждый товар может находится в разных группах. И я чё-то совсем не могу понять как связать эти две таблицы, чтоб заработало логика, как я хочу. items (товары) ID (int) PK AI Info (varchar 256) Article (varchar 32) groups (группы) ID (int) PK AI Info (varchar 256) Помогите пожалуйста решить задачку. |
#2
|
||||
|
||||
![]() Связь "много-много" делается через промежуточную таблицу.
Некоторые программисты настолько ленивы, что сразу пишут рабочий код. Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты. |
Этот пользователь сказал Спасибо Aristarh Dark за это полезное сообщение: | ||
Uniq! (26.08.2014)
|
#3
|
||||
|
||||
![]() Совсем забыл про этот тип связей. Просто никогда подробно не останавливался на этом. Огромное спасибо.
Дальнейший затык связан с тем, что необходимо реализовать Master-Detail визуализацию уже на форме. В TTable всегда для этого пользовался свойством MasterSource. В моём случае TTable не подходит, т.к. используется Join запрос: Код:
SELECT * FROM `itemstypes` JOIN `items` ON `itemstypes`.`ID` = `items`.`ID` В конечном итоге в DBGrid хотелось бы видеть только те записи из результата запроса, которые соответствовали бы выбранной в DBlookUpComboBox записи itemstypes (связывающая таблица два (items и groups) набора данных) |
#4
|
||||
|
||||
![]() Код:
... where itemstypes.id = ... Некоторые программисты настолько ленивы, что сразу пишут рабочий код. Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты. |
#5
|
||||
|
||||
![]() я думал через masterdetails это делать.
А вы предлагает этот запрос повесить на какое-то событие вроде OnChange? |
#6
|
||||
|
||||
![]() Что-то вроде того.
Некоторые программисты настолько ленивы, что сразу пишут рабочий код. Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты. |