V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
magzza
V2EX  ›  数据库

向各位请教一个表创建的问题。

  •  
  •   magzza · 2017-03-23 15:00:58 +08:00 · 1225 次点击
    这是一个创建于 2802 天前的主题,其中的信息可能已经有所发展或是发生改变。
    如果有一项目,使用人新建项目的时候才能确定需要哪几个字段。这种情况是项目新建的时候根据字段每次新建数据库表?还是怎么操作?
    5 条回复    2017-03-23 21:23:44 +08:00
    ivvei
        1
    ivvei  
       2017-03-23 15:14:25 +08:00
    1. 用纵表
    2. 用别的数据库,比如 Mongo 之类可以方便扩展字段的
    3. 预留几个位置
    4. 用的时候新建表

    很多种解决方法吧,看你实际情况适合哪种。
    Immortal
        2
    Immortal  
       2017-03-23 15:15:32 +08:00
    问的太笼统了
    是几个字段里选几个需要的
    还是随机会生成新字段
    而且基本没有这种新建项目新建表的吧..反正我是没遇到过
    需求描述的太简单了
    不行就 mongodb
    cwek
        3
    cwek  
       2017-03-23 15:39:50 +08:00
    我知道的套路:
    1.你说过,新建(修改)表
    2.纵表,(元组唯一键,元组项目键,项目值),前两个做唯一主键
    3.文档式数据库
    carlonelong
        4
    carlonelong  
       2017-03-23 16:29:08 +08:00
    kv
    flniu
        5
    flniu  
       2017-03-23 21:23:44 +08:00
    纵表:经常被用来在关系数据库中存储可变字段,但字段数据类型不同很麻烦,查询和 join 很麻烦。这是用关系数据库干不适合关系存储的事,扬短避长。
    新建表:建表有开销,程序运行代码需要 DDL 权限,而且不方便优化(比如加索引)。

    一般有几种思路:
    1. 根据业务判断 item 的种类和各自的字段,预先定义不同表。 ORM 层可以用多态。
    2. 在关系数据库中用 json 存储不确定的字段。缺点是 json 中的字段不方便查询。
    3. 使用文档式数据库。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2598 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 04:38 · PVG 12:38 · LAX 20:38 · JFK 23:38
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.