|
Как правильно оформить таблицу для заявок
|
|||
---|---|---|---|
#18+
Добрый день Уважаемые! Скажите пожалуйста, если есть такая задача: Имеются объекты разных типов (Животные, Дома, Страны, ...) У объектов есть разные характеристики (Животные: Семейство, Название, Место обитания и др, Дома: Этажность, Наличие Паркинга и пр. ....) У пользователей есть возможность делать предложения по изменению свойств. Т.е. должна храниться информация "Пользователь предложил у такого объекта, {сменить,удалить,создать} данное свойство на такое-то значение" Вроде насколько я понял, похоже на модель EAV, но всё же спрошу. Стоит ли всю эту информацию о действиях пользователей хранить в одной таблице: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9.
И если да, то как лучше организовать в ней индексы при условии таких запросов: 1. Все действия пользователей в таком-то типе объектов 2. Все действия пользователей в таком-то экземпляре (objID), объекта такого-то типа (objType) 3. Все действия данного пользователя ... |
|||
:
Нравится:
Не нравится:
|
|||
19.02.2019, 21:29 |
|
Как правильно оформить таблицу для заявок
|
|||
---|---|---|---|
#18+
kormot, 1. Не мешало бы озвучить СУБД. ПостГре ? 2. Думаю, что нужны индексы objType+objID и userID ... |
|||
:
Нравится:
Не нравится:
|
|||
19.02.2019, 21:53 |
|
Как правильно оформить таблицу для заявок
|
|||
---|---|---|---|
#18+
L_argo , нет БД - MariaDB 10.3, а от БД в такой задачи что зависит? А то, что индекс будет objType+objID, например если в запросе будет WHERE objID=5, без objType, то составной индекс сыграет в запросе положительную роль? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.02.2019, 22:52 |
|
Как правильно оформить таблицу для заявок
|
|||
---|---|---|---|
#18+
Не понял, зачем в таблице objType - он не определяется по objID? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2019, 11:19 |
|
Как правильно оформить таблицу для заявок
|
|||
---|---|---|---|
#18+
Нет, там могут быть объекты разных сущностей с одинаковыми objID. Дескать когда по объекту такого-то типа производится заявка от пользователя, то в эту таблицу пишется запись об этом. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2019, 13:08 |
|
Как правильно оформить таблицу для заявок
|
|||
---|---|---|---|
#18+
kormotто составной индекс сыграет в запросе положительную роль?Скорее всего нет. Если такие запросы будут редкими, то ими можно смело пренебречь. Беда подобных таблиц, что нужно покрывать индексами почти все поля. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2019, 13:41 |
|
Как правильно оформить таблицу для заявок
|
|||
---|---|---|---|
#18+
L_argoБеда подобных таблиц, что нужно покрывать индексами почти все поля. А от большого количества индексов какие минусы кроме расходов на память? Время вставки? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2019, 14:15 |
|
Как правильно оформить таблицу для заявок
|
|||
---|---|---|---|
#18+
kormotНет, там могут быть объекты разных сущностей с одинаковыми objID. Если у Вас таки ключ обьекта - objType+objID, то запросы WHERE objID=5, без objType выглядят странно ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2019, 15:09 |
|
Как правильно оформить таблицу для заявок
|
|||
---|---|---|---|
#18+
Кот МатроскинЕсли у Вас таки ключ обьекта - objType+objID, то запросы WHERE objID=5, без objType выглядят странно Согласен, таких не будет. Только с типом объекта. Сам понял сейчас :) А по индексам, можете дать ссылку где почитать про выбор индексов, или так написать основные принципы? А то я встречал неоднократно что если что-то тормозит, то надо индекс добавить, а если в таблице много индексов - то это тоже некая проблема. Как выбрать то этот набор столбцов для индексирования? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2019, 15:22 |
|
|
start [/forum/topic.php?fid=32&fpage=6&tid=1539959]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
39ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
52ms |
get tp. blocked users: |
2ms |
others: | 274ms |
total: | 417ms |
0 / 0 |