Ситуация следущая.
в базе храниться информация о некотором числе диалогов(тикеты)
тоесть отдельно юзеры отдельно агенты отдельно вопросы пользователей отдельно ответы операторов, отдельно вложения(прикреплённые к сообщениям)
Как из этотго всего построить диалог(отобразить на странице?) вариант в лоб выбрать несколькими запросами ввсю инфу но номеру диалога а потом в коде раставить по местамю но както топорно и потенциально долго. можноли как нибудь по изящнее?
примерные структуры таблиц прилагаются(подскажите хотя бы общее направление)
CREATE TABLE `clients` (
`client_id` int(11) NOT NULL,
`first_name` varchar(20) COLLATE utf8_unicode_ci NOT NULL,
`last_name` varchar(20) COLLATE utf8_unicode_ci NOT NULL,
`email` varchar(56) COLLATE utf8_unicode_ci NOT NULL,
`password` varchar(16) COLLATE utf8_unicode_ci NOT NULL DEFAULT 'Pass!12345@',
`phone` varchar(16) COLLATE utf8_unicode_ci NOT NULL,
`avatar` varchar(256) COLLATE utf8_unicode_ci DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
ALTER TABLE `clients`
ADD PRIMARY KEY (`client_id`);
ALTER TABLE `clients`
MODIFY `client_id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=18;
COMMIT;
++++++++++++++++++++
CREATE TABLE `tickets` (
`ticket_id` int(11) NOT NULL,
`client_id` int(11) NOT NULL,
`agent_id` int(11) DEFAULT NULL,
`wlabel_id` int(11) NOT NULL,
`level` enum('high','medium','low') COLLATE utf8_unicode_ci NOT NULL,
`mode` enum('created','complited','open','answered','close','arhived') COLLATE utf8_unicode_ci NOT NULL,
`title` varchar(256) COLLATE utf8_unicode_ci NOT NULL,
`date_creation` timestamp NOT NULL DEFAULT current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
ALTER TABLE `tickets`
ADD PRIMARY KEY (`ticket_id`);
ALTER TABLE `tickets`
MODIFY `ticket_id` int(11) NOT NULL AUTO_INCREMENT;
COMMIT;
+++++++++++++++++++
CREATE TABLE `users` (
`user_id` int(11) NOT NULL,
`group_id` int(11) NOT NULL,
`first_name` varchar(20) COLLATE utf8_unicode_ci NOT NULL,
`last_name` varchar(36) COLLATE utf8_unicode_ci NOT NULL,
`nickname` varchar(16) COLLATE utf8_unicode_ci NOT NULL,
`email` varchar(56) COLLATE utf8_unicode_ci NOT NULL,
`password` varchar(16) COLLATE utf8_unicode_ci NOT NULL DEFAULT 'Pass!12345@',
`phone` varchar(16) COLLATE utf8_unicode_ci NOT NULL,
`avatar` varchar(256) COLLATE utf8_unicode_ci NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
ALTER TABLE `users`
ADD PRIMARY KEY (`user_id`);
ALTER TABLE `users`
MODIFY `user_id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=2;
COMMIT;
++++++++++++++++++++++++++
CREATE TABLE `responses` (
`response_id` int(11) NOT NULL,
`agent_id` int(11) NOT NULL,
`ticket_id` int(11) NOT NULL,
`attachment_id` int(11) DEFAULT NULL,
`data_creation` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
`content` text COLLATE utf8_unicode_ci NOT NULL,
`status` tinyint(1) NOT NULL DEFAULT 1
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
ALTER TABLE `responses`
ADD PRIMARY KEY (`response_id`);
ALTER TABLE `responses`
MODIFY `response_id` int(11) NOT NULL AUTO_INCREMENT;
COMMIT;
++++++++++++++++++++++++++
CREATE TABLE `messages` (
`message_id` int(11) NOT NULL,
`client_id` int(11) NOT NULL,
`ticket_id` int(11) NOT NULL,
`date_creation` timestamp NOT NULL DEFAULT current_timestamp(),
`content` text COLLATE utf8_unicode_ci NOT NULL,
`status` tinyint(1) NOT NULL DEFAULT 1
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
ALTER TABLE `messages`
ADD PRIMARY KEY (`message_id`);
ALTER TABLE `messages`
MODIFY `message_id` int(11) NOT NULL AUTO_INCREMENT;
COMMIT;
+++++++++++++++++++++++++++++
CREATE TABLE `attachments` (
`attachment_id` int(11) NOT NULL,
`type` enum('image','file','archive','geodata','contact','accaunt') COLLATE utf8_unicode_ci DEFAULT NULL,
`name` varchar(256) COLLATE utf8_unicode_ci NOT NULL,
`path` varchar(256) COLLATE utf8_unicode_ci NOT NULL,
`client_id` int(11) DEFAULT NULL,
`agent_id` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
ALTER TABLE `attachments`
ADD PRIMARY KEY (`attachment_id`);
ALTER TABLE `attachments`
MODIFY `attachment_id` int(11) NOT NULL AUTO_INCREMENT;
COMMIT;
+++++++++++++++++++++++
CREATE TABLE `notes` (
`note_id` int(11) NOT NULL,
`agent_id` int(11) NOT NULL,
`ticket_id` int(11) NOT NULL,
`content` text COLLATE utf8_unicode_ci NOT NULL,
`date_createtoin` timestamp NOT NULL DEFAULT current_timestamp(),
`type` enum('private','public') COLLATE utf8_unicode_ci NOT NULL DEFAULT 'private'
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
ALTER TABLE `notes`
ADD PRIMARY KEY (`note_id`);
ALTER TABLE `notes`
MODIFY `note_id` int(11) NOT NULL AUTO_INCREMENT;
COMMIT;