Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Как лучше организовать структуру таблиц?
|
|||
|---|---|---|---|
|
#18+
Взять, к примеру, предметы (артефакты), каждый из которых дает определенные характеристики, такие как + 10 к силе, + 15 к урону и тд. * Всего около 200 предметов и около 40 видов характеристик. * Предмет обычно дает не более 5-ти характеристик. * новые предметы и характеристики будут добавляться крайне редко. Через 5 лет будет примерно 205 / 42 соответственно. * Имя предмета и его id будут доставаться из БД ОЧЕНЬ часто, а характеристики, наверное, на 20% реже. Конечно, на мой сайт будет заходить по 5 бомжей в год и то случайно, но это не повод не разобраться в том, как же все таки сделать структуру БД правильнее. Точнее эффективнее. Так вот, надумал (чем - не знаю) такие варианты: 1) Сделать две таблицы: items: | id | name | и effects: | item_id | + к силе | + к обаянию | + к длинне самооценки | и еще около 35 таких полей И доставать одним JOIN-ом , когда необходима вся информация. Проблема в том, что раз каждый предмет может давать не более 5-ти характеристик, и соответственно, в каждой записи будет пустовать по 35 полей. С другой стороны, количество записей расти не будет. И избыточность соответственно тоже. 2) Сделать три таблицы: items: | id | name | effects: id |name | item_effects: item_id| effect_id| value | (в item_effects будет примерно 600-1000 записей) И делать либо 1 SELECT + 1 JOIN: SELECT нужное FROM items WHERE id = 1; SELECT a.name, b.value FROM effects a LEFT OUTER JOIN item_effects b ON a.id = b.effect_id where b.item_id = 1; Либо сложные Join на все сразу в одном запросе. при условии, что во всех таблицах количество записей не будет меняться, какой вариант лучше? И какие есть лучше? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2017, 17:31 |
|
||
|
|

start [/forum/topic.php?fid=47&tid=1830334]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
42ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
38ms |
get tp. blocked users: |
2ms |
| others: | 11ms |
| total: | 136ms |

| 0 / 0 |
