Я использую mysql, у меня есть таблица пользователей, которая содержит некоторую базовую информацию, такую как имя, фамилия, возраст, пол и т. Д. Я хочу предоставить функцию, называемую профилем, где пользователь будет поместить другую информацию, такую как местоположение работы, альтернативные контактные данные и т. д. Эти новые столбцы не фиксированы, в будущем мне может быть больше столбцов. Насколько мне известно, могут быть два подхода:хороший подход для периодического добавления столбцов в таблицу sql
1) Добавляйте новые столбцы каждый раз, когда это необходимо, это будет помещать нулевые записи в предыдущие строки для новых добавленных столбцов.
2) Добавить новую таблицу, которая будет содержать все столбцы идентификаторы имен столбцов, и еще одну таблицы, которая будет содержать ключевое значение, как структуру для каждого пользователя, который имеет запись для этой конкретной новой колонки следующим образом:
Таблица 1: userId | firstName | возраст | ....
Таблица 2: columnId | columnName | dataType
Таблица 3: userId | columnId | значение
Какой будет хороший подход для моего сценария?
Таблица 3 должна быть 'userId | columnId | value' –
Пожалуйста, решите, какую базу данных вы фактически используете. –
Сохранение нулевых значений не так уж плохо ... ответ зависит от частоты изменений вашей структуры. однако для второго подхода (если вы решите пойти с этим) я бы предложил просто таблицу ключевых значений (возможно, с столбцом типа данных.) –