Обычно я не стал бы уделять этому вопросу много внимания. Но вы предлагаете 100 000 пользователей, каждый из которых имеет до 400 URL. Это становится громоздким с любым подходом. Но сначала посмотрите, нужно ли вам использовать План B:
План A: Если вы никогда не будете использовать MySQL для поиска по содержимому столбца, тогда вы можете поместить все ты хочешь в это. Если клиент хочет выделить содержимое столбца, тогда, конечно, используйте JSON (или любой другой), чтобы сделать это проще. И вы можете сэкономить место, сжимая столбец в клиенте и используя BLOB
вместо JSON
.
Plan B: Если, с другой стороны, вы хотите, чтобы MySQL выбирал строки на основе какая-то часть столбца, затем не скрывайте ее в середине столбца. Кроме того, у вас не должно быть 20 столбцов для 20 виджетов.
Если вы решите go с планом А, то есть еще одна проблема, которая может иметь значение. Если в таблице есть громоздкие столбцы в столбце (и кажется, что 400 URL-адресов будут громоздкими), эти столбцы , вероятно, будут храниться "вне записи". Это подразумевает дополнительный удар по диску, чтобы получить его. Поэтому остерегайтесь использования SELECT *
, когда вам не нужен этот столбец; то есть, укажите столбцы, которые вам нужны .
(может быть несколько советов; просьба сообщить подробности о вашем приложении.)