powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Таблица отзывов
14 сообщений из 14, страница 1 из 1
Таблица отзывов
    #36736700
Собираю отзывы из разных источников. Нужно хранить их в таблице.
Поля: 'produtcId' char(14), 'user' varchar(128), 'Source' varchar(128), 'content' text
Варианты использования:
Найти все отзывы о продукте

Вставить или обновить отзыв

Смущает второй пункт. По идее, только комбинация всех полей в таблице обеспечивает уникальность, но поиск по четырем текстовым полям смущает.
Вопрос: что использовать как первичный ключ?
...
Рейтинг: 0 / 0
Таблица отзывов
    #36736852
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Китайский сварщикВопрос: что использовать как первичный ключ? 'produtcId', 'user', 'Source'
...
Рейтинг: 0 / 0
Таблица отзывов
    #36736878
alexeyvg,

Как насчет перформанса этого ключа? Не стои ли использовать хэш по этим полям?
...
Рейтинг: 0 / 0
Таблица отзывов
    #36736880
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Китайский сварщикalexeyvg,

Как насчет перформанса этого ключа? Не стои ли использовать хэш по этим полям?Зависит от средней длинны этих полей и, наверное, от используемой СУБД.

Конечно, с кэшем будет быстрее, но стоит ли овчинка выделки...
...
Рейтинг: 0 / 0
Таблица отзывов
    #36736990
Lemegeton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Удивляет, что productID и user -- текстовые поля.

Эти данные больше нигде не используются и не имеют других используемых функционально зависимых атрибутов?

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

Для каждой записи продуктайди, пользователь и источник уникальны?

То есть, не может ли быть у одного пользователя для одного продактайди из одного источника другого контента?
...
Рейтинг: 0 / 0
Таблица отзывов
    #36737053
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LemegetonУдивляет, что productID и user -- текстовые поля.Это обычное дело для внешних ключей

Разве что 'Source' можно было сделать справочником - получится экономия, источников-же обычно немного.

Ну и вариант - сделать суррогатный целый ключ, а естественный оставить просто уникальным констрейном, если на эту таблицу есть ссылки - это уже будет оправдано.
...
Рейтинг: 0 / 0
Таблица отзывов
    #36737863
LemegetonУдивляет, что productID и user -- текстовые поля.

Эти данные больше нигде не используются и не имеют других используемых функционально зависимых атрибутов?


Да.

Lemegeton
Если все же это должны быть текстовые поля, для определения ключа следует уточнить, что определяет уникальность записи?

Для каждой записи продуктайди, пользователь и источник уникальны?

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


Уникальность обеспечивает комбинация 'produtcId', 'user', 'Source'.
...
Рейтинг: 0 / 0
Таблица отзывов
    #36738133
eduard.kasimov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Китайский сварщикВопрос: что использовать как первичный ключ?В таблицах первичный ключ - код записи.
...
Рейтинг: 0 / 0
Таблица отзывов
    #36738209
eduard.kasimovКитайский сварщикВопрос: что использовать как первичный ключ?В таблицах первичный ключ - код записи.

В этом то и проблема, что у меня нету кода записи.
...
Рейтинг: 0 / 0
Таблица отзывов
    #36738625
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
eduard.kasimovВ таблицах первичный ключ - код записи.Странное утверждение. Разве они как то связаны, хоть по теории, хоть на практике?
...
Рейтинг: 0 / 0
Таблица отзывов
    #36738855
eduard.kasimov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alexeyvgeduard.kasimovВ таблицах первичный ключ - код записи.Странное утверждение. Разве они как то связаны, хоть по теории, хоть на практике?Применяю данное правило давно, результатом доволен. Перенял от Толика Тенцера:
Естественные ключи против искуственных ключей
...
Рейтинг: 0 / 0
Таблица отзывов
    #36739204
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
eduard.kasimovalexeyvgeduard.kasimovВ таблицах первичный ключ - код записи.Странное утверждение. Разве они как то связаны, хоть по теории, хоть на практике?Применяю данное правило давно, результатом доволен. Перенял от Толика Тенцера:
Естественные ключи против искуственных ключей Да нету такого правила, в т.ч. и у Тенцера.

"первичный ключ (ПК) - набор атрибутов, уникально идентифицирующий её в таблице", как справедливо утверждает Тенцер. Вы почему то так не считаете, непонятно на каком основании.

Если на таблицу никто не ссылается, то тот же Тенцер пишет в той-же статье:
"В некоторых случаях (например, таблица на которую нет REFERENCES и в которую осуществляется интенсивная вставка данных и т.п.) более верно использовать ЕК"
что тоже вполне разумно.

Ну а вы утверждаете совсем странное: "В таблицах первичный ключ - код записи." Напрашивается продолжение - "А в процедурах первичный ключ - это ..." :-)

К тому же под кодом записи понимается обычно первичный ключ, в т. ч. и составной, и естественный.
...
Рейтинг: 0 / 0
Таблица отзывов
    #36739297
Lemegeton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Китайский сварщикУникальность обеспечивает комбинация 'produtcId', 'user', 'Source'.
Вы сами прекрасно ответили на собственный вопрос. ;)

Китайский сварщикСмущает второй пункт. По идее, только комбинация всех полей в таблице обеспечивает уникальность, но поиск по четырем текстовым полям смущает.
Вопрос: что использовать как первичный ключ?
Да, поиск по четырем текстовым полям мальца смущает. Естественные текстовые ключи вообще не сильно рекомендуются в реальных СУБД. Тут надо бы замерить прибыль и расходы.
Попробуйте сделать справочники из полей, где значения часто повторяются, добавьте искуственный первичный ключ, воспользуйтесь полнотекстовым поисковиком (ну там Sphinx или что-там-сегодня-идеологически-верное?).
...
Рейтинг: 0 / 0
Таблица отзывов
    #36742381
kink
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Китайский сварщикУникальность обеспечивает комбинация 'produtcId', 'user', 'Source'.

А если пользователь два отзыва на один продукт оставит?
Скажем после покупки и после того как он у него сломался. :)

Я бы добавил поле ID в таблицу отзывов.
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Таблица отзывов
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]