From: | "Dmitry E(dot) Oboukhov" <unera(at)debian(dot)org> |
---|---|
To: | pgsql-ru-general(at)postgresql(dot)org |
Subject: | несколько вопросов новичка (ограничения и индексы) |
Date: | 2011-02-21 06:28:17 |
Message-ID: | 20110221062816.GF23127@apache.rbscorp.ru |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-ru-general |
есть табличка
servers:
| id | name |
есть другая табличка в которой каждая запись может иметь отношение к
нескольким серверам, однако выборок кроме как статистики не
планируется, соответственно хочется сделать в ней такой вот столбик:
resources:
| id | some column | ... | server_id[] |
то есть денормализованный вариант который позволяет без join'ов
отвечать на вопрос: на каких еще серверах лежит данный ресурс?
Вопрос: как написать ограничение для столбика server_id[] чтобы
1. в нем проводилась проверка валидности укладываемых в него ID
2. чтобы эта проверка не убила профит от денормализации по накладным
расходам
и еще: можно ли выборкой из второй и первой таблицы получить результат
вида:
| id | some column | ... | server_name[] |
Я с массивами в столбиках пока еще плаваю :)
И еще вопрос по индексам.
есть табличка
| id | ... | type::varchar(16) |
по полю type построен BTREE индекс. Значение в поле type по сути -
ENUM. Однако варианты иногда таки меняются и альтертаблить не хочется.
Так же во всех выборках нужно строго строковое значение,
соответственно нормализовывать тоже не хочется.
вопрос: индекс по varchar(16) vs индекс по ENUM (или INT) насколько у
них будет большая разница в скорости работы?
ну места сама таблица будет конечно больше занимать, но места вроде не
жалко. имеет ли большой смысл нормализация?
--
... mpd is off
. ''`. Dmitry E. Oboukhov
: :’ : email: unera(at)debian(dot)org jabber://UNera(at)uvw(dot)ru
`. `~’ GPGKey: 1024D / F8E26537 2006-11-21
`- 1B23 D4F8 8EC0 D902 0555 E438 AB8C 00CF F8E2 6537
From | Date | Subject | |
---|---|---|---|
Next Message | Dmitriy Igrishin | 2011-02-21 09:26:00 | Re: [pgsql-ru-general] несколько вопросов новичка (ограничения и индексы) |
Previous Message | Dmitriy Igrishin | 2011-02-19 08:49:47 | Re: [pgsql-ru-general] не выполняются функции PQsetdbLogin и PQconnectdb |