|
|
|
Таблица отзывов
|
|||
|---|---|---|---|
|
#18+
Собираю отзывы из разных источников. Нужно хранить их в таблице. Поля: 'produtcId' char(14), 'user' varchar(128), 'Source' varchar(128), 'content' text Варианты использования: Найти все отзывы о продукте Вставить или обновить отзыв Смущает второй пункт. По идее, только комбинация всех полей в таблице обеспечивает уникальность, но поиск по четырем текстовым полям смущает. Вопрос: что использовать как первичный ключ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2010, 18:20 |
|
||
|
Таблица отзывов
|
|||
|---|---|---|---|
|
#18+
Китайский сварщикВопрос: что использовать как первичный ключ? 'produtcId', 'user', 'Source' ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2010, 19:44 |
|
||
|
Таблица отзывов
|
|||
|---|---|---|---|
|
#18+
alexeyvg, Как насчет перформанса этого ключа? Не стои ли использовать хэш по этим полям? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2010, 20:07 |
|
||
|
Таблица отзывов
|
|||
|---|---|---|---|
|
#18+
Китайский сварщикalexeyvg, Как насчет перформанса этого ключа? Не стои ли использовать хэш по этим полям?Зависит от средней длинны этих полей и, наверное, от используемой СУБД. Конечно, с кэшем будет быстрее, но стоит ли овчинка выделки... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2010, 20:10 |
|
||
|
Таблица отзывов
|
|||
|---|---|---|---|
|
#18+
Удивляет, что productID и user -- текстовые поля. Эти данные больше нигде не используются и не имеют других используемых функционально зависимых атрибутов? Если все же это должны быть текстовые поля, для определения ключа следует уточнить, что определяет уникальность записи? Для каждой записи продуктайди, пользователь и источник уникальны? То есть, не может ли быть у одного пользователя для одного продактайди из одного источника другого контента? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2010, 22:07 |
|
||
|
Таблица отзывов
|
|||
|---|---|---|---|
|
#18+
LemegetonУдивляет, что productID и user -- текстовые поля.Это обычное дело для внешних ключей Разве что 'Source' можно было сделать справочником - получится экономия, источников-же обычно немного. Ну и вариант - сделать суррогатный целый ключ, а естественный оставить просто уникальным констрейном, если на эту таблицу есть ссылки - это уже будет оправдано. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2010, 23:08 |
|
||
|
Таблица отзывов
|
|||
|---|---|---|---|
|
#18+
LemegetonУдивляет, что productID и user -- текстовые поля. Эти данные больше нигде не используются и не имеют других используемых функционально зависимых атрибутов? Да. Lemegeton Если все же это должны быть текстовые поля, для определения ключа следует уточнить, что определяет уникальность записи? Для каждой записи продуктайди, пользователь и источник уникальны? То есть, не может ли быть у одного пользователя для одного продактайди из одного источника другого контента? Уникальность обеспечивает комбинация 'produtcId', 'user', 'Source'. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2010, 12:21 |
|
||
|
Таблица отзывов
|
|||
|---|---|---|---|
|
#18+
Китайский сварщикВопрос: что использовать как первичный ключ?В таблицах первичный ключ - код записи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2010, 13:19 |
|
||
|
Таблица отзывов
|
|||
|---|---|---|---|
|
#18+
eduard.kasimovКитайский сварщикВопрос: что использовать как первичный ключ?В таблицах первичный ключ - код записи. В этом то и проблема, что у меня нету кода записи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2010, 13:41 |
|
||
|
Таблица отзывов
|
|||
|---|---|---|---|
|
#18+
eduard.kasimovВ таблицах первичный ключ - код записи.Странное утверждение. Разве они как то связаны, хоть по теории, хоть на практике? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2010, 15:26 |
|
||
|
Таблица отзывов
|
|||
|---|---|---|---|
|
#18+
alexeyvgeduard.kasimovВ таблицах первичный ключ - код записи.Странное утверждение. Разве они как то связаны, хоть по теории, хоть на практике?Применяю данное правило давно, результатом доволен. Перенял от Толика Тенцера: Естественные ключи против искуственных ключей ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2010, 16:31 |
|
||
|
Таблица отзывов
|
|||
|---|---|---|---|
|
#18+
eduard.kasimovalexeyvgeduard.kasimovВ таблицах первичный ключ - код записи.Странное утверждение. Разве они как то связаны, хоть по теории, хоть на практике?Применяю данное правило давно, результатом доволен. Перенял от Толика Тенцера: Естественные ключи против искуственных ключей Да нету такого правила, в т.ч. и у Тенцера. "первичный ключ (ПК) - набор атрибутов, уникально идентифицирующий её в таблице", как справедливо утверждает Тенцер. Вы почему то так не считаете, непонятно на каком основании. Если на таблицу никто не ссылается, то тот же Тенцер пишет в той-же статье: "В некоторых случаях (например, таблица на которую нет REFERENCES и в которую осуществляется интенсивная вставка данных и т.п.) более верно использовать ЕК" что тоже вполне разумно. Ну а вы утверждаете совсем странное: "В таблицах первичный ключ - код записи." Напрашивается продолжение - "А в процедурах первичный ключ - это ..." :-) К тому же под кодом записи понимается обычно первичный ключ, в т. ч. и составной, и естественный. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2010, 18:27 |
|
||
|
Таблица отзывов
|
|||
|---|---|---|---|
|
#18+
Китайский сварщикУникальность обеспечивает комбинация 'produtcId', 'user', 'Source'. Вы сами прекрасно ответили на собственный вопрос. ;) Китайский сварщикСмущает второй пункт. По идее, только комбинация всех полей в таблице обеспечивает уникальность, но поиск по четырем текстовым полям смущает. Вопрос: что использовать как первичный ключ? Да, поиск по четырем текстовым полям мальца смущает. Естественные текстовые ключи вообще не сильно рекомендуются в реальных СУБД. Тут надо бы замерить прибыль и расходы. Попробуйте сделать справочники из полей, где значения часто повторяются, добавьте искуственный первичный ключ, воспользуйтесь полнотекстовым поисковиком (ну там Sphinx или что-там-сегодня-идеологически-верное?). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2010, 19:40 |
|
||
|
Таблица отзывов
|
|||
|---|---|---|---|
|
#18+
Китайский сварщикУникальность обеспечивает комбинация 'produtcId', 'user', 'Source'. А если пользователь два отзыва на один продукт оставит? Скажем после покупки и после того как он у него сломался. :) Я бы добавил поле ID в таблицу отзывов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2010, 09:53 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=36742381&tid=1542623]: |
0ms |
get settings: |
11ms |
get forum list: |
22ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
199ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
72ms |
get tp. blocked users: |
2ms |
| others: | 242ms |
| total: | 573ms |

| 0 / 0 |
