Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Table Inheritance
|
|||
|---|---|---|---|
|
#18+
Собственно есть несколько таблиц унаследованных от одной таблицы. Нужно сделать вьюху, которая будет обьединять данные из всех этих таблиц. Дело в том что позже таблицы будут добавляться еще и придется VIEW подкручивать, вопрос в том можно ли написать универсальное представление и если да то прошу выдать ссылку. ЗЫ: А нет ли такой фичи уже в самой СУБД? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2007, 16:53 |
|
||
|
Table Inheritance
|
|||
|---|---|---|---|
|
#18+
А вы уже пробовали сделать селект из головной таблицы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2007, 18:34 |
|
||
|
Table Inheritance
|
|||
|---|---|---|---|
|
#18+
А понял, вы делали всё сами. Вот почитайте ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2007, 18:35 |
|
||
|
Table Inheritance
|
|||
|---|---|---|---|
|
#18+
Читал я это уже но там ответа нет. Боюсь плохо обьяснил ситуацию: CREATE TABLE cities ( name text, population real, altitude int -- (in ft) ); CREATE TABLE capitals ( state char(2) ) INHERITS (cities); тут еще много наследников с разным набором полей. Нужно сделать View (или без него обойтись если возможно), такое, что в выборке будут присутствовать все возможные поля из всех наследников, тоесть: select from myview вернет: name, state, population, altitude и другие поля из других наследников, причем без явного описания: select name, NULL as state from cities union select name, state, from capitals... возможно вообще такое? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2007, 20:32 |
|
||
|
Table Inheritance
|
|||
|---|---|---|---|
|
#18+
Однозначный случай плохо спроектированного приложения. Misdesign одним словом. Хотеть того, что хотите вы -- все равно что хотеть из родительского объекта обратиться к методам классов-наследников в ООП. Могу "посоветовать" только создать скрипт, который будет в кроне проверять состояние вашей базы и создавать требуемый "динамический" view. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2007, 20:53 |
|
||
|
Table Inheritance
|
|||
|---|---|---|---|
|
#18+
izМогу "посоветовать" только создать скрипт, который будет в кроне проверять состояние вашей базы и создавать требуемый "динамический" view.ну, ежли состояние базы фиксировано - пишется юнион с перечислением всех полей потомков (для тех потомков, в которых того или иного поля нет заполняем поля Null-ами, расширив соответственный подселект юниона. при этом, кажется, не теряем особо в быстродействии. по крайней мере - пока. т.к. общие индексы на гирлянду наследников ,кажется, только обещают. а процедурку наваять, имхо несложно. можно примерно так SELECT *, f(tableoid,oid) FROM "maintable"; где f - pgSQL ф-я, возвращающая ROW (record) вида ~~ EXECUTE 'SELECT * FROM ' || quote_ident(SELECT c.relname FROM pg_class c WHERE c.oid = v.tableoid) || ' WHERE oid = ' || oid где вместо oid может использоваться ваше ключевое (если оно для всех таблиц - унаследовано). должно получится (не проверял - ожидаемая проблема - поле с типом запись, каждая из которых разной структуры). доп поле с типом "запись" придется потом разбирать клиентом. (для чего ему можно еще и передать (тоже как поле) запись из системных таблиц - о составе этой самой записи). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2007, 10:48 |
|
||
|
|

start [/forum/topic.php?fid=53&gotonew=1&tid=2005165]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
64ms |
get topic data: |
14ms |
get first new msg: |
8ms |
get forum data: |
3ms |
get page messages: |
54ms |
get tp. blocked users: |
2ms |
| others: | 244ms |
| total: | 421ms |

| 0 / 0 |
