Здравствуйте, гость ( Вход | Регистрация )
|
mva |
26.6.2009, 15:46
Сообщение
#1
|
|
Участник ![]() ![]() Группа: Участник Сообщений: 104 Регистрация: 15.3.2009 Из: Киров Пользователь №: 615 Спасибо сказали: 3 раз(а) Репутация: 0
|
Все примеры использования QSqlRelationalTableModel сделаны для демонстрации работы с одним столбцом из другой таблицы. Как быть, если мне нужно взять несколько столбцов из другой таблицы?
|
|
|
|
![]() |
|
mva |
26.6.2009, 17:48
Сообщение
#2
|
|
Участник ![]() ![]() Группа: Участник Сообщений: 104 Регистрация: 15.3.2009 Из: Киров Пользователь №: 615 Спасибо сказали: 3 раз(а) Репутация: 0
|
Есть конечно вариант использовать не таблицу employee, а ее просмотр, в котором для каждого поля внешней таблицы city сделать свой ключ - копию ключа city. Например так:
CREATE VIEW vw_employee AS SELECT ID, Name, City AS city_name, City AS city_post_index, City AS city_phone_code , Country FROM employee А потом в приложении написать: model->setTable("vw_employee"); model->setRelation(2, QSqlRelation("city", "id", "name")); model->setRelation(3, QSqlRelation("city", "id", "post_index")); model->setRelation(4, QSqlRelation("city", "id", "phone_code")); Этот вариант прокатит, но не хотелось бы использовать такие "костыли" - некрасиво. И возможность редактирования таблицы employee здесь теряется... Цитата(SABROG @ 26.6.2009, 18:36) Link Я чего-то не понимаю. В отношении всегда 2 объекта: - объект, который ссылается - объект на который ссылаются Если есть Петя, в поле "адрес" у которого ключ 1. В другой таблице по ключу 1 стоит "Мухосранск, 10, кв.20". Ключ "1" не может ссылаться сразу на 2 и более объекта. Например "номер пасспорта", "телефонный номер" и "приводы в милицию". Вернее, теоретически может. Но обычно все PRIMARY ключи - автоинкрементируемые. Если только в одну из перечисленных полей добавится запись, то ключи перестанут совпадать. Это должна быть какая-то синхронность редактирования БД чтоль. Все правильно, в отношении "один-к-одному" всегда 2 объекта. Но, у каждого из этих объектов может быть несколько атрибутов. Например, у Пети может быть задан день рождения и место рождения, а может еще что-то. Так вот, у проживающего по адресу "Мухосранск, 10, кв.20" я хочу знать ФИО, дату рождения и где он родился. Или мне для каждого атрибута отдельную таблицу заводить? Отдельно таблицу для дат рождения с двумя полями, отдельно таблицу мест рождений тоже с двумя полями. Так что ли? |
|
|
|
mva Снова о QSqlRelationalTableModel 26.6.2009, 15:46
SABROG Я активно не работал с этим классом и отказался от... 26.6.2009, 15:57
Litkevich Yuriy mva, а что именно тебе не понятно?
У меня в одной ... 26.6.2009, 16:51
mva Возьмем этот пример
В нем таблица city имеет 2 по... 26.6.2009, 17:19
SABROG Я чего-то не понимаю. В отношении всегда 2 объекта... 26.6.2009, 17:36
Litkevich Yuriy Цитата(mva @ 26.6.2009, 21:19) Это что, в... 26.6.2009, 17:55
mva Цитата(Litkevich Yuriy @ 26.6.2009, 18:51... 26.6.2009, 17:55
Litkevich Yuriy mva, по сути ты не понял, что есть реляционная (от... 26.6.2009, 18:04
mva Цитата(Litkevich Yuriy @ 26.6.2009, 18:58... 26.6.2009, 18:11
SABROG Кажется я понял о чем ты. Если есть таблицы:
User... 26.6.2009, 18:06
Litkevich Yuriy Цитата(mva @ 26.6.2009, 22:11) Что означа... 26.6.2009, 18:32
mva Цитата(Litkevich Yuriy @ 26.6.2009, 19:26... 26.6.2009, 18:36
Litkevich Yuriy Цитата(mva @ 26.6.2009, 22:36) Но там же ... 26.6.2009, 19:55
mva Цитата(Litkevich Yuriy @ 26.6.2009, 20:55... 27.6.2009, 4:22
Litkevich Yuriy mva, про отдельные столбцы желания не понимаю.
Т.к... 27.6.2009, 5:36
mva Цитата(Litkevich Yuriy @ 27.6.2009, 6:36)... 27.6.2009, 19:10![]() ![]() ![]() |
|
Текстовая версия | Сейчас: 25.12.2025, 3:36 |