Формат столбца

Winer

Мимо проходил
Формат столбца

есть две таблицы
location: id_user int,abbrev char
country: abrev char,country char
проблема такая
есть страница, на ней multiple select(страны)
если пользователь выбрал all, то в location заводиться строка на каждую страну для этого пользователя, еси неск-ко городов, то только эти города.
Соотв. получаем количество строк кол-во пользователей*кол-во стран(по максимуму).Это не есть хорошо(базу и скрипт писал не я:)).Сейчас есть 238 стран.
Думал над SET. но там всего 64 значения и ENUM(там как я понял нельзя несколько значений сразу хранить).
Каким образом можно хранить это дело в виде один пользователь - одна строка( а не один пользователь - строка*кол-во городов);
Ради прикола решил посчтитать сколько сейчас может быть строчек по максимуму- 238*1044=248472.
 

Nime

Guest
Так у тебя там страны или города, определись?

А так не трогай - нормальная база данных.
 

Winer

Мимо проходил
страны, города, какая разница :) страны там
чё нормального ??? особенно если all ставиться по умолчанию.
некрасиво это как-то.мускуль ведь не железный
 

fixxxer

К.О.
Партнер клуба
А чем это плохо?
Главное - индексы на abrev чтобы были...
Хотя я бы сделал связь по country_id int
 

Nime

Guest
Нормальная база тебе говорят :)
Или ты спросил, чтобы не соглашаться? ;)

Разве что можно в случае "all" вообще записи не писать, но это надо точно знать что делаешь. А так как это неизвестно, то и сказать не могу.
 

fixxxer

К.О.
Партнер клуба
Если по умолчанию all и галок больше стоит чем не стоит, можно писать страны, которые _не_ отмечены. ;)
 

Winer

Мимо проходил
fixxxer
Хотя я бы сделал связь по country_id int
да, мысль дельная, насчёт int индексов я не подумал

Nime
Нормальная база тебе говорят
Или ты спросил, чтобы не соглашаться?
я спросил либо чтобы подсказали решение, либо привели доводы, что "база нормальная" : ))

Разве что можно в случае "all" вообще записи не писать, но это надо точно знать что делаешь
я думаю не можно а нужно, а то при каждой регистрации юзера, кроме его инфы, ещё 238 записей стран будет вставляться.Да и место жалко :)
 

Фанат

oncle terrible
Команда форума
Ради прикола решил посчтитать сколько сейчас может быть строчек по максимуму- 238*1044=248472.
и че - какие проблемы?
ты описал структуру базы, а проблем - ни одной.
Если нет проблем - то зачем париться?
 

Nime

Guest
Originally posted by Winer
Nime

я спросил либо чтобы подсказали решение, либо привели доводы, что "база нормальная" : ))
Ты хочешь, чтобы тебе изложили теорию нормализации баз данных? :) Почитай про нормальные формы и поймёшь, что к чему.
 

Winer

Мимо проходил
Фанат
да, проблему действительно не указал.Главная - мне так не нравиться, не хочу!!! : ))
Еси серьёзно, мне не нравиться такая структура, из-за того, что она мне кажется неоптимальной, т.к. заводить на каждого пользователя 200 с лишним записей стран по-моему лишнее, хотя если ничего другого нельзя придумать, то придёться.При кол-ве пользователей > 4200, а мы надеемся на большее число записей перешагнёт(скорее всего) за 1млн.А кроме стран там и другие поля есть...

-~{}~ 27.03.04 22:33:

Nime
всё хотел да как-то руки не доходили
можно ссылку ???
а то ман по мускулу почти весь прочёл, а теорию почти не знаю, стыдно : ))
 

Nime

Guest
www.yandex.ru - там всё найдешь
конкретной ссылки под рукой нет, но этого добра в интернете полно

А "не нравится" и "не хочу" не самые серьёзные аргументы, пока не знаешь теорию. Когда будешь знать, тогда и сможешь определять, что есть оптимально, а что нет :)
 
Сверху