У меня есть следующие таблицы:
Client
и Companies
.A Client
может иметь несколько Companies
.В настоящее время я отображаю список Clients
в jQuery dataTable , используя обработку на стороне сервера.Все работает нормально, но люди, использующие его, спрашивали меня, могут ли они также искать, используя названия некоторых компаний в качестве критериев поиска.
Теперь, при нормальных обстоятельствах, dataTable делает это самостоятельно, просматривая поля.Но dataTable серьезно замедляется после нескольких сотен записей, поэтому я вынужден использовать обработку на стороне сервера, и мне приходится выполнять поиск и обрабатывать конечные результаты, так как dataTable отвечает только за отображение текущего лота.
В настоящее время я выполняю сравнение LIKE
по нескольким полям таблицы Clients
для поиска.
Я подумал, что я могу добавить объединенный список всех Companies
, принадлежащихкаждый Client
и добавить пользовательское поле для сравнения LIKE
, и даже может отображать его в виде небольшого списка после имени клиента.
Что я мог сделать в этом случае, так это идеявозможно или есть какой-то лучший способ сделать это?
Я подумал, может быть, какой-то подзапрос, но он должен вернуть только один результат.
ОБНОВЛЕНИЕ: Структура базы данных
Клиенты
- client_id |INT (11) |НЕ НУЛЬ |AUTO_INCREMENT
- first_name |VARCHAR (200) |NOT NULL
- last_name |VARCHAR (200)
- электронная почта |VARCHAR (200) |NOT NULL
- пароль |ТЕКСТ
- телефон |VARCHAR (50)
- дата рождения |ДАТА
- registration_date |DATETIME
- client_type |INT (11) - Ссылки
ClientTypes
таблица - status_id |INT (11) |NOT NULL - ссылки
ClientStatus
таблица
компании
- company_id |INT (11) |НЕ НУЛЬ |AUTO_INCREMENT
- название компании |VARCHAR (200) |NOT NULL
- company_name_slug |VARCHAR (200) |NOT NULL
- creation_on |DATETIME |NOT NULL
- updated_on |DATETIME
- client_id |INT (11) |NOT NULL - Ссылки
Clients
таблица
Я не могу скопировать точные операторы CREATE
, потому что у реальных таблиц есть еще несколько полей и связей с другими таблицами.Я добавил возобновленную версию, но идея есть.Я ожидаю, что смогу сделать что-то вроде:
Конечный результат в ячейке DataTable
Клиент Alpha
- Company Foo
- Фирменный бар
- Фирменный Омега
Клиент Бета
Клиент Гамма
И если я ищу " omega ", я хочу, чтобы результат содержал клиентов Alpha и Beta.