Я хотел бы хранить информацию о пользователе в таблице.Оптимизированное хранилище данных MySQL
Первый пример Поля, напр. «имеет автомобиль», «имеет квартиру», «имеет кошку», «имеет собаку», «имеет ЖК-телевизор», «имеет ноутбук» ...
Значение полей может быть y/n или y/null (null означает пустое значение в таблице).
Поля выше заполнены случайным образом, например. "y", "null", "null", "null", "y", "null" OR "y", "n", "n", "n", "y", "n"
Так что только те поля содержат полезную информацию для меня, которая заполнена «y», потому что, когда я использую запрос, я просто хочу увидеть результат этих полей, которые содержат только «y» значение.
Есть ли возможность для этого, потому что, очевидно, результат каждой записи будет отличаться от других?
Второе решение Я создаю таблицу, в которой хранятся идентификатор пользователя и свойство пользователя, например.
свойство идентификатор пользователя 1 имеет автомобиль 1 имеет собака 2 имеет ЖК-телевизор 3 имеет плоский 3 имеет ноутбук 3 имеет кошке
Здесь ненужная информация не сохраняются, но DB может иметь более чем 100000 строк.
Мой вопрос - это лучший способ хранения. Для одного пользователя будет использовано свойство 100-120. И будет другая таблица, которая будет подключаться к исходной таблице, которая также будет содержать еще 50 аналогичных свойств (y/null).
Я думаю, что второе решение лучше, но у меня есть сомнения со скоростью. Конечно, первичный ключ будет использоваться, и более важные поля (внешний ключ) будут получены «Уникальными». (Я слышал с уникальными, мы можем получить результаты быстрее).
Что вы думаете о написании выше?
Спасибо за ваши ответы заранее.
С наилучшими пожеланиями & Nice Day, Атти
Насколько статичным является список предметов «есть»? То есть на следующей неделе будет несколько новых? Если это так, столбцы ENUM, SET, INT, могут быть беспорядочными. И это приведет к JSON и другим вариантам. –
Сколько продуктов со значением "пользователи"? Если только 1000, производительность, вероятно, будет прекрасной, независимо от способа ее реализации. Если 1M, то, вероятно, будет разумным найти способ хранения каждого «имеет» в одном бите (даже меньше Y/null). –