|
|
|
Работа с множествами
|
|||
|---|---|---|---|
|
#18+
Привет! А как большие, умные люди делают, когда нужно использовать произвольное кол-во данных из определённого набора? К примеру - нужно записать список городов, которые посетил пользователь. Пользователей много, городов в мире - ещё больше, при этом каждый из пользователей может посетить произвольное число городов. Либо - перечень аптек, в которых есть определённое лекарство? Как вот это вот всё хранить? Я сегодня узнал, что есть такая штука - как множества, но они поддерживают лишь 64 значения. Не настаиваю на подробном ответе - просто хоть опишите по каким ключевым словам инфу искать. MySQL - не моя область, я даже примерно не представляю как это организовать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2015, 13:44:55 |
|
||
|
Работа с множествами
|
|||
|---|---|---|---|
|
#18+
3 таблицы: города, пользователи, пользователи-города ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2015, 14:34:42 |
|
||
|
Работа с множествами
|
|||
|---|---|---|---|
|
#18+
"пользователи-города" Воот, как раз это у меня и вызывает непонятки. Как это сделать? Ведь городов может быть большое кол-во, да ещё и не известно заранее сколько их максимум будет. Т. е. бесконечное кол-во столбцов плодить нельзя будет ведь под каждый город, нужно будет их список упихнуть как-то в один столбец? В строку перечислить нельзя - неудобно же работать с ними потом будет. Или сделать двухстолбцовую таблицу вида: ПОЛЬЗОВАТЕЛЬ ГОРОД Сидорчук Минск Сидорчук Москва Сидорчук Киев Сидорчку Лондон Иванова Коста-Рика Малоусов Новгород Малоусов Тверь ? Но в таком случае если хотя бы 20 человек побывает в 5 городах - таблица будет оооочень длинной... Или это всё же лучший вариант? Или что-то более оптимальное есть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2015, 14:59:46 |
|
||
|
Работа с множествами
|
|||
|---|---|---|---|
|
#18+
2 справочника юзеры и города и одна связующая их по id'шникам user_id - city_id. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2015, 15:12:00 |
|
||
|
Работа с множествами
|
|||
|---|---|---|---|
|
#18+
МАН69Кесли хотя бы 20 человек побывает в 5 городах - таблица будет оооочень длинной...Почему тебя это заботит? лучше посмотри на MySQL database limitations - фиг ты когда на таком материале приблизишься к проблемному количеству записей. МАН69КИли это всё же лучший вариант?Это единственный вариант, гарантирующий, что архитектора не назовут идиотом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2015, 15:36:59 |
|
||
|
Работа с множествами
|
|||
|---|---|---|---|
|
#18+
МАН69КНе настаиваю на подробном ответе - просто хоть опишите по каким ключевым словам инфу искатьИщи по словам Базы данных связь многие ко многим МАН69КMySQL - не моя область, я даже примерно не представляю как это организовать.Ну этого можно было не писать, это и так понятно по первым предложениям. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2015, 15:43:19 |
|
||
|
Работа с множествами
|
|||
|---|---|---|---|
|
#18+
Ага, понял, спасибо большое за объяснения! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2015, 16:02:27 |
|
||
|
Работа с множествами
|
|||
|---|---|---|---|
|
#18+
МАН69КПривет! А как большие, умные люди делают, когда нужно использовать произвольное кол-во данных из определённого набора? Множество в РБД -- это таблица, содержащая поля первичного ключа экземпляров той сущности, которая должна входить или нет в то или иное множество. Для хранинея нескольких таких множеств можно добавить в PK такой таблицы ещё одно поле -- идентификатор множества. МАН69КК примеру - нужно записать список городов, которые посетил пользователь. Пользователей много, городов в мире - ещё больше, при этом каждый из пользователей может посетить произвольное число городов. Либо - перечень аптек, в которых есть определённое лекарство? Как вот это вот всё хранить? Это называется "связь "многие-ко-многим". МАН69КЯ сегодня узнал, что есть такая штука - как множества, но они поддерживают лишь 64 значения. Это видимо enum-ы. Они никому не нужны. Тупиковая ветвь развития mySQL. Их не нужно использовать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2015, 16:22:56 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=38897251&tid=1833489]: |
0ms |
get settings: |
9ms |
get forum list: |
19ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
79ms |
get topic data: |
13ms |
get forum data: |
4ms |
get page messages: |
51ms |
get tp. blocked users: |
2ms |
| others: | 232ms |
| total: | 417ms |

| 0 / 0 |
