Помогите с PostgreSQL

Frutik

1024-й
Помогите с PostgreSQL

Мне нужно сделать базу - хранилище описаний фильмов.
Подскажите как сделать - есть поле в базе актери, но актеров то может бить не один, а поле не может бить типа "массив" - тоесть больше одного значения в него не пихнешь
Как в таких случаях поступают не новички?
И еще одно... Что єкономнее (для ресурсов сервера) - сделать один большой запрос к базе и держать результат в мозгах сервера масивом обьектов-описателей фильмов (достаточно деталних и больших) и таки образом не нагружать постгрес запросами или держать масив идов а если надо инфа о фильме то витаскивать ее по иду и таким образом не жрать память сервака но часто дергать субд?
 

Sad Spirit

мизантроп (Старожил PHPClub)
Команда форума
Re: Помогите с PostgreSQL

Автор оригинала: Frutik
Мне нужно сделать базу - хранилище описаний фильмов.
Подскажите как сделать - есть поле в базе актери, но актеров то может бить не один, а поле не может бить типа "массив" - тоесть больше одного значения в него не пихнешь
Как в таких случаях поступают не новички?
Это называется связью "многие-ко-многим" и в реляционных базах реализуется через вспомогательные таблицы.
Т.е. в твоём случае
Код:
CREATE TABLE actors_to_films (
    actor_id integer NOT NULL,
    film_id integer NOT NULL,
    PRIMARY KEY (actor_id, film_id)
);
А вообще моя стандартная рекомендация --- кирпич Дейта "Введение в системы баз данных". ;)
И еще одно... Что єкономнее (для ресурсов сервера) - сделать один большой запрос к базе и держать результат в мозгах сервера масивом обьектов-описателей фильмов (достаточно деталних и больших) и таки образом не нагружать постгрес запросами или держать масив идов а если надо инфа о фильме то витаскивать ее по иду и таким образом не жрать память сервака но часто дергать субд?
Умные люди советуют сначала написать программу, а затем её оптимизировать. :D
 

Frutik

1024-й
Re: Re: Помогите с PostgreSQL

А вообще моя стандартная рекомендация --- кирпич Дейта "Введение в системы баз данных". ;)
где взять?

Умные люди советуют сначала написать программу, а затем её оптимизировать. :D
Умніе люди с самого начала стараются писать оптимально... ИМХО два раза делать одну и туже роботу дороговато обходится

А в целом за совет сенкс
 

Sad Spirit

мизантроп (Старожил PHPClub)
Команда форума
Re: Re: Re: Помогите с PostgreSQL

Автор оригинала: Frutik
где взять?
Эээ... Купить? ;)

Умніе люди с самого начала стараются писать оптимально... ИМХО два раза делать одну и туже роботу дороговато обходится
Узкие места, как правило, можно найти только в процессе тестирования с реальными данными. А то напишешь мощную систему кэширования, а потом выяснится, что без неё всё на порядок быстрее работает.
Если уж сильно хочешь позаниматься оптимизацией, почитай на http://techdocs.postgresql.org/ статейки на тему настройки Postgres'а. Ежели выставить ему нормальный размер кэша, то он и так будет хранить всю часто запрашиваемую хрень в памяти.
 
Сверху