Должен ли я ссылаться на идентификатор поля или иметь фактические данные в той же строке? - PullRequest
0 голосов
/ 06 июля 2011

У меня есть две таблицы, meetings_table и items_table.

items_table имеет три столбца:

id
item
description

meetings_table имеет два столбца:

first_party
second_party

Я хочу показать имена двух сторон и предмет, о котором они встречаются.Должен ли я добавить еще один столбец к meetings_table, ссылаясь на идентификатор элемента в items_table, а затем вытащить оттуда имя и описание элемента?Или я должен добавить два столбца к meetings_table, элемент и описание и просто выполнить один запрос таким образом?Что лучше по принципу эффективности?

Ответы [ 2 ]

1 голос
/ 06 июля 2011

Лучше всего иметь id для каждого элемента, добавить id к meetings_table и запросить оттуда, как

 SELECT * FROM meetings_table a, items_table b WHERE a.item_id=b.item_id

Это сделает item и meetings своего рода независимыми друг от друга, а также сэкономит место.

1 голос
/ 06 июля 2011

Вы должны просто ссылаться на идентификатор предмета. Таким образом, если вам нужно обновить что-либо об элементе, вы просто делаете это в одном месте, и оно будет распространяться на все запросы, использующие эти данные. Вы почти никогда не хотите хранить данные дважды в базе данных. Время от времени вы сталкиваетесь с ситуацией, когда ненормализованные данные приемлемы, но это исключение, а не правило.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...