2013-12-18 4 views
0

У меня есть заявление следующие создания:один большой стол или нормированные две таблицы вставки выбрать Быстродействие

CREATE TABLE venues 
(
    id integer NOT NULL, 
    fs_id varchar, 
    name varchar, 
    phone varchar, 
    address varchar, 
    latitude double precision, 
    longitude double precision, 
    city varchar, 
    state varchar, 
    country varchar, 
    category_fs_id varchar, 
    category_name varchar, 
    CONSTRAINT pk_venue_id PRIMARY KEY (id) 
); 

я могу получить то, что я хочу с одним запросом, но это слишком много столбцов, поэтому я могу создать более таблица, как:

CREATE TABLE venues 
(
    id integer NOT NULL, 
    fs_id varchar, 
    name varchar, 
    category_fs_id varchar, 
    category_name varchar, 
    venue_info_id integer, 
    CONSTRAINT pk_venue_id PRIMARY KEY (id) 
    CONSTRAINT fk_venue_info_id FOREIGN KEY (venue_info_id) 
    REFERENCES venue_info (id) MATCH SIMPLE 
    ON UPDATE NO ACTION ON DELETE NO ACTION 
); 


CREATE TABLE venue_info 
(
    phone varchar, 
    address varchar, 
    latitude double precision, 
    longitude double precision, 
    city varchar, 
    state varchar, 
    country varchar, 
); 

, но после этого я должен написать два запроса для каждой вставки и объединения таблиц в запросе на выборку ли это привести к снижению производительности или я могу сделать это с одним запросом даже в этом случае?

+0

«слишком много столбцов» для чего? –

ответ

2

Если вся эта информация относится только к месту проведения мероприятия, вы должны хранить ее в одной таблице, а не иметь отдельную таблицу с дополнительной информацией. В зависимости от типа вы можете иметь до 1600 столбцов в одной таблице. (Хотя вы, вероятно, не должны!) Постарайтесь, чтобы ваши таблицы были репрезентативными для сущностей, с которыми вы имеете дело - venue_info на самом деле не определенно.

Хотя я мог видеть аргумент в отношении наличия отдельной таблицы address в вашей системе, если у вас было несколько объектов, у всех были адреса, которые нуждались в тех же деталях.

1

Мое мнение. Не нужно разбивать код, так как таблица содержит все данные адреса & ничего более. Почему мы разрушаем структуру таблицы, goes here. Надеюсь, эта ссылка может вам помочь.

Смежные вопросы