powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Стоит ли разбить таблицы на несколько?
6 сообщений из 6, страница 1 из 1
Стоит ли разбить таблицы на несколько?
    #39392556
murtukov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте!

Есть таблица User . Каждый юзер может быть либо школьником , либо учителем , либо клиентом , либо админом , либо суперадмином .
Проблема вот в чем: каждый вид юзера имеет множество полей, которые относятся только к данному типу пользователя. Стало быть, если юзер является школьником, то все его поля, которые относятся к другим типам юзеров, будут пусты. И так вся таблица будет всегда на 2/3 пустой. Будет ли это бить по производительности? Есть ли какие-то минусы в этом? Всего в таблице около 50 столбцов.

Главный вопрос: стоит ли разделять таблицу на несколько? Например одну главную таблицу user и связанные с ней pupil , teacher , customer , admin , superadmin ? Я просто владею недостаточным количеством информации, поэтому не знаю всех плюсов и минусов.

Спасибо всем за любую информацию
...
Рейтинг: 0 / 0
Стоит ли разбить таблицы на несколько?
    #39392558
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
murtukov,

Судя по тому, что в одну кучу замешаны школьники и клиенты, это учебная задача?
...
Рейтинг: 0 / 0
Стоит ли разбить таблицы на несколько?
    #39392570
murtukov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoft, это вымышленные названия, а задача реальная
...
Рейтинг: 0 / 0
Стоит ли разбить таблицы на несколько?
    #39392589
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
murtukovэто вымышленные названияПравильность проектирования зависит от предметной области, в т.ч. от тех операций, которые предполагается производить с данными. Не зная ни того, ни другого нельзя посоветовать что-то определенное.

Начните с одной широкой таблицы, в которой есть все поля для всех подтипов записей. В будущем, возможно, пригодятся и кажущиеся ненужными поля. А когда подразберетесь получше - сможете перепроектировать БД, если будет такая необходимость.
...
Рейтинг: 0 / 0
Стоит ли разбить таблицы на несколько?
    #39392649
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Решений три.

Самое плохое - это отдельная таблица для каждого типа.
Получше - EAV. Впрочем, иногда оно может оказаться оптимальным.
Ещё лучше - одна таблица, пусть и разреженная.
К сожалению, в двух последних вариантах возникнут сложности с контролем полноты заполнения. Проще всего их решить, если всю логику изменения данных реализовывать в формате ХП.

murtukovБудет ли это бить по производительности?
Почти наверняка вряд ли. Особенно при правильной индексации.

murtukovВсего в таблице около 50 столбцов.Это немного. Если, конечно, они все не LONGBINARY...
murtukovГлавный вопрос: стоит ли разделять таблицу на несколько?99% за то, что нет. Остальное - за "фиг знает".
...
Рейтинг: 0 / 0
Стоит ли разбить таблицы на несколько?
    #39393167
AndrewS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вариант: одна общая таблица и к ней 1-к-1 подключены детальные таблицы (как описал ТС).
Достоинства:
- детальная таблица имеет специфичный набор полей.
- разные детальные таблицы могут иметь свои подчиненные таблицы. При этом нет необходимости делать внешний ключ на общую таблицу.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Стоит ли разбить таблицы на несколько?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]