请问后台的网站信息配置要怎么设计数据表才合理?

图中是后台网站信息设置页面
用了srpingmvc框架和hibernate操作数据库
图片描述

我是用hibernate操作数据

public static WebInfo get(int id){
        Session session = webInfoImpl.getSession();
        return (WebInfo)session.get(WebInfo.class,new Integer(id));
    }

我这段代码是获取到WebInfo表的数据

@RequestMapping("/submit")
    public String submit(WebInfoModel webInfoModel){
        WebInfo webInfo = webInfoImpl.get(0);
        System.out.println(webInfoModel.getTitle());
        webInfo.setTitle(webInfoModel.getTitle());
        webInfo.setCopyright(webInfoModel.getCopyright());
        webInfo.setKeyword(webInfoModel.getKeyword());
        webInfo.setDescription(webInfoModel.getDescription());
        webInfoImpl.update(webInfo);
        return "redirect:index";
    }

提交表单处理的代码
这是获取 webInfoImpl.get(0) id=0的字段.,这样设计做合适吗?我总感觉直接获取id=0很不妥.还有什么更优的方法?
因为WebInfo表永远是只有一条数据.
还有,有什么办法让WebInfo表只能插入一条数据.唯一一条

阅读 4.9k
2 个回答

只有一条数据,就不要讲什么数据表设计了。
其实这么简单的数据,直接用文件缓存就好了,没有必要使用数据库。

怎样限制只能插入一条数据?
你不向里面添加数据,只修改id为0的数据不就行了?

谢邀。

如楼上所说,写到文件中最合适,例如写到.properties文件,可使用java.util.Properties类。

另外,你需要考虑上传的LOGO怎么传,它是一个很小的文件,可以把这个文件保存在磁盘上,也可以转成Base64放在.properties里。例如:

#Properties File
title=My Site
meta_keywords=Home Page
meta_description=Home Page of My Site
copyright=© 2017
logo=AaB1234...

当然,也不是不能存在数据库里,以mysql为例,可以把表设计成两列,一列叫key,一列叫valuekey是主键。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题