|
|
|
md5 от name в качестве PK
|
|||
|---|---|---|---|
|
#18+
День добрый. В БД планируется хранить артистов, треки, альбомы, логи прослушивания и т.д. Проблема с артистами состоит в том, что нужно проверять их на уникальность при добавлении (база постоянно дополняется). Исполнители могут быть добавлены просто списком, соответственно могут быть дубли. При этом могут быть ситуации, когда название групп/треков/альбомов может отличаться только регистром или содержать какие-то спец символы и прочее. Очень часто из-за этого возникают проблемы и используется md5(name) в качестве идентификатора на уровне кода (в memcached, например). С другой стороны использовать md5 в качестве PK не есть хорошо, ибо зависит от имени и гораздо больше накладные расходы, в том числе и размеры индексов будут больше, чем в случае int. Как быть? Была мысль использовать в качестве PK сурогатный int (соответственно в связях и выборках использовать его), а уникальность проверять по дополнительному полю с md5 и его же использовать для кэширования. Но по сути получается, что храним 2 ключа %) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2014, 13:42:35 |
|
||
|
md5 от name в качестве PK
|
|||
|---|---|---|---|
|
#18+
Не нужно ни PK, ни md5. Сделайте обычный справочник с текстовым полем и сделайте на него уникальные индекс. Если нужно будет одновременно и хранить оригинальное название, и соблюдать регистронезависимую уникальность, то два поля - оригинальное название и название, приведенное к одному регистру и выброшенными небуквенными символами. И уникальный индекс на второе поле. А PK - обычный автоинкрементный. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2014, 13:49:34 |
|
||
|
md5 от name в качестве PK
|
|||
|---|---|---|---|
|
#18+
Не надо ничего приводить даже Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2014, 19:18:52 |
|
||
|
md5 от name в качестве PK
|
|||
|---|---|---|---|
|
#18+
Коллейт только у поля должен быть соотвествующий, с постфиксом _ci (case insensetive) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2014, 19:21:19 |
|
||
|
|

start [/forum/topic.php?desktop=1&fid=47&tid=1834766]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
40ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
50ms |
get tp. blocked users: |
2ms |
| others: | 236ms |
| total: | 376ms |

| 0 / 0 |
