|
sap ↓
|
 |
|
29 Август, 2008, 03:07:57
|
НЕ ХУЕТА!
ХУЕТА!
|
Группа: Жмурики Карма: 40
Сообщений: 2697 Сила слова: 1.48
|
Возьмем банальный пример — новости. Условие — урл новости должен выглядеть следующим образом:
http://example.com/news/news-about-something
Возникает вопрос, какой оптимальный вариант структуры таблицы новостей?
1. id INT(11) PRIMARY KEY | key VARCHAR(255) UNIQUE | ...
Но если ulr (news-about-something) уникальный, зачем нужен id?
2. key VARCHAR(255) PRIMARY KEY | ...
То есть используем news-about-something как праймари.
Но, при мультиязычности придется делать связи, чего не пришлось бы делать в первом варианте, если добавить поле lang.
3. Еще видел вариант, где участвует и id, и key.
http://example.com/news/12-news-about-something
Но это, по сути, первый вариант.
Вобщем, как лучше? :)
|
|
|
|
|
Записан
|
|
|
|
|
adw0rd ↓
|
 |
|
29 Август, 2008, 03:17:50 , спустя 9 минут 53 секунды
|
НЕ ХУЕТА!
ХУЕТА!
|
эдво
Группа: в ухо Карма: не нужна
Сообщений: 17610 Сила слова: 1.67
|
sap, используй первый вариант, так как int дешевле varchar. И при нормализованной структуре БД - получишь заметный выигрыш.
|
|
|
|
|
Записан
|
|
|
|
|
adw0rd ↓
|
 |
|
29 Август, 2008, 03:21:43 , спустя 3 минуты 53 секунды
|
НЕ ХУЕТА!
ХУЕТА!
|
эдво
Группа: в ухо Карма: не нужна
Сообщений: 17610 Сила слова: 1.67
|
Но, при мультиязычности придется делать связи, чего не пришлось бы делать в первом варианте, если добавить поле lang.
Не понял... В любом случае ты можешь делать связи... Но можешь и не делать. Короче, немного недопонял тебя наверное.
|
|
|
|
|
Записан
|
|
|
|
|
sap ↓
|
 |
|
29 Август, 2008, 12:11:02 , спустя 8 часов 49 минут 19 секунд
|
НЕ ХУЕТА!
ХУЕТА!
|
Группа: Жмурики Карма: 40
Сообщений: 2697 Сила слова: 1.48
|
Но, при мультиязычности придется делать связи, чего не пришлось бы делать в первом варианте, если добавить поле lang.
Не понял... В любом случае ты можешь делать связи... Но можешь и не делать. Короче, немного недопонял тебя наверное.
Я о симметричности разных языковых версий. Т.е. чтобы с /ru/news/news-about-something попадать на /en/news/news-about-something и все было ок :)
id INT(11) PRIMARY KEY | key VARCHAR(255) | lang VARCHAR(2) | ...
SELECT * FROM `table` WHERE `key`="news-about-something" AND `lang`="ru" LIMIT 1
Только тут придется движком проверять, чтобы не было дублей в паре key | lang.
Если идет второй вариант, то там вообще запара будет.
так как int дешевле varchar. И при нормализованной структуре БД - получишь заметный выигрыш.
Ээ... но запрос ведь все равно идет по варчару. В урле же варчар, инт ид нигде практически не используется.
|
|
|
|
|
Записан
|
|
|
|
|
CTAPbIu_MABP ↓
|
 |
|
29 Август, 2008, 12:18:30 , спустя 7 минут 28 секунд
|
НЕ ХУЕТА!
ХУЕТА!
|
мавр
Группа: в ухо Карма: не нужна
Сообщений: 5187 Сила слова: 1.81
|
поддерживаю adw0rd'а
сам сначала сделел вторым вариантом, а когда начал добавлять всякие прикрепленнве файлы каменты и рейтинги понял что ошибся, пришлось все переписывать
чтобы не было дублей в паре key | lang
поставь UNIQUE на два поля
|
|
|
|
« Последнее редактирование: 29 Август, 2008, 12:20:43 от CTAPbIu_MABP »
|
Записан
|
java.lang.OutOfMemoryError
|
|
|
|
sap ↓
|
 |
|
29 Август, 2008, 12:39:24 , спустя 20 минут 54 секунды
|
НЕ ХУЕТА!
ХУЕТА!
|
Группа: Жмурики Карма: 40
Сообщений: 2697 Сила слова: 1.48
|
поставь UNIQUE на два поля
o_O не понял, UNIQUE можно поставить на связку полей?
Ну вобщем, я тоже к первому варианту склоняюсь :)
|
|
|
|
|
Записан
|
|
|
|
|
adw0rd ↓
|
 |
|
29 Август, 2008, 01:00:53 , спустя 21 минуту 29 секунд
|
НЕ ХУЕТА!
ХУЕТА!
|
эдво
Группа: в ухо Карма: не нужна
Сообщений: 17610 Сила слова: 1.67
|
|
|
|
|
|
Записан
|
|
|
|
|
CTAPbIu_MABP ↓
|
 |
|
29 Август, 2008, 01:05:14 , спустя 4 минуты 21 секунду
|
НЕ ХУЕТА!
ХУЕТА!
|
мавр
Группа: в ухо Карма: не нужна
Сообщений: 5187 Сила слова: 1.81
|
o_O не понял, UNIQUE можно поставить на связку полей?
попробуй
|
|
|
|
|
Записан
|
java.lang.OutOfMemoryError
|
|
|
|
sap ↓
|
 |
|
29 Август, 2008, 01:12:46 , спустя 7 минут 32 секунды
|
НЕ ХУЕТА!
ХУЕТА!
|
Группа: Жмурики Карма: 40
Сообщений: 2697 Сила слова: 1.48
|
О, супер :)
|
|
|
|
|
Записан
|
|
|
|
|
phpdude ↓
|
 |
|
23 Ноябрь, 2008, 12:15:29 , спустя 85 дней 12 часов 2 минуты 43 секунды
|
НЕ ХУЕТА!
ХУЕТА!
|
я - ЭМО
Группа: в ухо Карма: 344
Сообщений: д-о-х-у-я! Сила слова: 1.66
|
а если у тебя будет юрл длиннее 255 символов? ;)
|
|
|
|
|
Записан
|
забанен. могу забанить других, пишите в личку BEER. Helping ugly people have sex since 1862.
|
|
|
|
CTAPbIu_MABP ↓
|
 |
|
23 Ноябрь, 2008, 12:16:29 , спустя 1 минуту
|
НЕ ХУЕТА!
ХУЕТА!
|
мавр
Группа: в ухо Карма: не нужна
Сообщений: 5187 Сила слова: 1.81
|
phpdude, то будет BSOD
|
|
|
|
|
Записан
|
java.lang.OutOfMemoryError
|
|
|
|
adw0rd ↓
|
 |
|
23 Ноябрь, 2008, 12:21:53 , спустя 5 минут 24 секунды
|
НЕ ХУЕТА!
ХУЕТА!
|
эдво
Группа: в ухо Карма: не нужна
Сообщений: 17610 Сила слова: 1.67
|
phpdude, а если больше чем GET позволяет?)
|
|
|
|
|
Записан
|
|
|
|
|
CTAPbIu_MABP ↓
|
 |
|
23 Ноябрь, 2008, 12:47:08 , спустя 25 минут 15 секунд
|
НЕ ХУЕТА!
ХУЕТА!
|
мавр
Группа: в ухо Карма: не нужна
Сообщений: 5187 Сила слова: 1.81
|
adw0rd, это уже обсуждали
на практике браузеры на много больше чем 1 кило заявленый в спеках
|
|
|
|
|
Записан
|
java.lang.OutOfMemoryError
|
|
|
|
adw0rd ↓
|
 |
|
23 Ноябрь, 2008, 12:49:53 , спустя 2 минуты 45 секунд
|
НЕ ХУЕТА!
ХУЕТА!
|
эдво
Группа: в ухо Карма: не нужна
Сообщений: 17610 Сила слова: 1.67
|
adw0rd, это уже обсуждали
на практике браузеры на много больше чем 1 кило заявленый в спеках
я помню, однако ограничение всетаки есть ;)
|
|
|
|
|
Записан
|
|
|
|
|
phpdude ↓
|
 |
|
23 Ноябрь, 2008, 12:50:27 , спустя 34 секунды
|
НЕ ХУЕТА!
ХУЕТА!
|
я - ЭМО
Группа: в ухо Карма: 344
Сообщений: д-о-х-у-я! Сила слова: 1.66
|
это да, позволяют значительно больше. ну или простой пример - юрл - кирилическая строка. если кодировка ютф-8, то соответственно из 100 символов русских - 200 ингл)
|
|
|
|
|
Записан
|
забанен. могу забанить других, пишите в личку BEER. Helping ugly people have sex since 1862.
|
|
|
|