powered by simpleCommunicator - 2.0.48     © 2025 Programmizd 02
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Как правильно оформить таблицу для заявок
9 сообщений из 9, страница 1 из 1
Как правильно оформить таблицу для заявок
    #39776472
kormot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день Уважаемые!

Скажите пожалуйста, если есть такая задача:
Имеются объекты разных типов (Животные, Дома, Страны, ...)
У объектов есть разные характеристики (Животные: Семейство, Название, Место обитания и др, Дома: Этажность, Наличие Паркинга и пр. ....)
У пользователей есть возможность делать предложения по изменению свойств. Т.е. должна храниться информация "Пользователь предложил у такого объекта, {сменить,удалить,создать} данное свойство на такое-то значение"

Вроде насколько я понял, похоже на модель EAV, но всё же спрошу.

Стоит ли всю эту информацию о действиях пользователей хранить в одной таблице:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
TABLE data (
    id       SERIAL PRIMARY KEY,
   objID     BIGINT UNSIGNED,
   objType   TINYINT,
   objProp   TINYINT,
   userID    BIGINT UNSIGNED NOT NULL,
   actType   TINYINT,
   propValue CHAR(255)
)


И если да, то как лучше организовать в ней индексы при условии таких запросов:
1. Все действия пользователей в таком-то типе объектов
2. Все действия пользователей в таком-то экземпляре (objID), объекта такого-то типа (objType)
3. Все действия данного пользователя
...
Рейтинг: 0 / 0
Как правильно оформить таблицу для заявок
    #39776479
L_argo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kormot,

1. Не мешало бы озвучить СУБД. ПостГре ?
2. Думаю, что нужны индексы objType+objID и userID
...
Рейтинг: 0 / 0
Как правильно оформить таблицу для заявок
    #39776493
kormot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
L_argo , нет БД - MariaDB 10.3, а от БД в такой задачи что зависит?
А то, что индекс будет objType+objID, например если в запросе будет WHERE objID=5, без objType, то составной индекс сыграет в запросе положительную роль?
...
Рейтинг: 0 / 0
Как правильно оформить таблицу для заявок
    #39776632
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не понял, зачем в таблице objType - он не определяется по objID?
...
Рейтинг: 0 / 0
Как правильно оформить таблицу для заявок
    #39776701
kormot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нет, там могут быть объекты разных сущностей с одинаковыми objID. Дескать когда по объекту такого-то типа производится заявка от пользователя, то в эту таблицу пишется запись об этом.
...
Рейтинг: 0 / 0
Как правильно оформить таблицу для заявок
    #39776726
L_argo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kormotто составной индекс сыграет в запросе положительную роль?Скорее всего нет. Если такие запросы будут редкими, то ими можно смело пренебречь.
Беда подобных таблиц, что нужно покрывать индексами почти все поля.
...
Рейтинг: 0 / 0
Как правильно оформить таблицу для заявок
    #39776748
kormot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
L_argoБеда подобных таблиц, что нужно покрывать индексами почти все поля.
А от большого количества индексов какие минусы кроме расходов на память? Время вставки?
...
Рейтинг: 0 / 0
Как правильно оформить таблицу для заявок
    #39776781
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kormotНет, там могут быть объекты разных сущностей с одинаковыми objID.
Если у Вас таки ключ обьекта - objType+objID, то запросы
WHERE objID=5, без objType
выглядят странно
...
Рейтинг: 0 / 0
Как правильно оформить таблицу для заявок
    #39776788
kormot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кот МатроскинЕсли у Вас таки ключ обьекта - objType+objID, то запросы
WHERE objID=5, без objType
выглядят странно
Согласен, таких не будет. Только с типом объекта. Сам понял сейчас :)

А по индексам, можете дать ссылку где почитать про выбор индексов, или так написать основные принципы?
А то я встречал неоднократно что если что-то тормозит, то надо индекс добавить, а если в таблице много индексов - то это тоже некая проблема.

Как выбрать то этот набор столбцов для индексирования?
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Как правильно оформить таблицу для заявок
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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