Довольно сложная проблема с MySQL - PullRequest
1 голос
/ 15 января 2009

У моего друга возникла проблема с большой базой данных MySQL и большим количеством повторяющихся столбцов в нескольких таблицах.

Чтобы лучше описать проблему, база данных обслуживает несколько служб, таких как FTP, Postfix, веб-почта, почти все общие службы, которые вы будете использовать на сервере Linux общего пользования, и все эти службы используют эту базу данных. Проблема заключается в том, что большинство служб не знают, как читать из нескольких таблиц, поэтому, если вы используете записи нескольких таблиц, такие как имя пользователя, пароль, переключатели, должны повторяться в этих таблицах, специфичных для службы. Хин Ex. UserProfile Table содержит все данные, относящиеся к пользователю. (Имя пользователя Пароль) Таблица ACL содержит данные, связанные с доступом (AccountEnabled, FTPEnabled, AccessType) Таблица FTP содержит данные, связанные с FTP (квота, каталоги и т. Д.) Я думаю, вы поняли картину ... Поэтому, если мне нужна служба ftp, я должен прочитать таблицу UserProfile, таблицу ACL и таблицу FTP, но, поскольку я не могу читать из нескольких таблиц, я читаю только таблицу ftp, в которой я продублировал необходимые мне поля, такие как Имя пользователя, Пароль и FTPEnabled.

Сейчас они пытаются создать приложение для администрирования всех этих сервисов, вы можете себе представить, что это было сделано вручную до сих пор, и сервер обслуживает более нескольких сотен пользователей. Итак, теперь они пытаются создать административный интерфейс, который управляет всеми этими таблицами. Проблема в том, что 30% того, что должно быть написано, являются дублирующими данными. Ex. Имя пользователя и пароль должны быть записаны 6 раз в разных таблицах.

Есть ли возможность создать таблицу с "Symlink" или чем-то подобным? Таким образом, у вас есть все данные в одной временной таблице, которая доступна для всех служб и динамически обновляется. Или есть какой-нибудь другой «умный» способ облегчить все это?

Заранее спасибо за ваше время, Titel

Ответы [ 2 ]

3 голосов
/ 15 января 2009

То, что вы ищете, называется VIEW .

Таким образом, вы можете иметь центральную таблицу со всей информацией по одному представлению на приложение с правильной структурой.

0 голосов
/ 15 января 2009

Почему службы не могут обращаться к нескольким таблицам?

Если вы действительно хотите использовать символическую ссылку на таблицу, посмотрите на представления.

...