MST

星途 面试题库

面试题:MariaDB中如何创建包含动态列的表

假设你要设计一个记录用户多种属性(属性数量和类型不确定)的表,在MariaDB中,你将如何利用动态列的特性来创建这个表?请写出大致的SQL语句,并简要说明这种设计的优势。
46.2万 热度难度
数据库MariaDB

知识考点

AI 面试

面试题答案

一键面试

创建表的SQL语句

CREATE TABLE user_properties (
    user_id INT PRIMARY KEY AUTO_INCREMENT,
    properties JSON
);

优势说明

  1. 灵活性:属性数量和类型不确定的情况下,JSON类型的动态列 properties 可以轻松存储各种格式的数据,无需事先定义每个属性的列。例如,可以存储 {"name": "John", "age": 30, "email": "john@example.com"} 这样不同类型属性的组合。
  2. 扩展性:随着业务发展,如果需要新增用户属性,无需修改表结构,直接在JSON对象中添加新的键值对即可。
  3. 存储效率:相比于为每个可能的属性都创建单独的列,JSON动态列在存储稀疏数据时更为高效,避免了大量空值占用空间。