database - 正在分隔数据库字段中的数据 ok

标签 database database-design

在数据库字段中分隔数据是否可行?

有点像

create table column_names (
  id int identity (1,1) PRIMARY KEY,
  column_name varchar(5000)
);

然后在里面存储数据如下

INSERT INTO column_names (column_name) VALUES ('stocknum|name|price');

最佳答案

没有。这很糟糕:

  • 为了创建新的查询,您必须跟踪事物的存储方式。

  • 加入价格、名称或库存编号的查询会很糟糕

  • 数据库无法为数据分配数据类型或验证数据

  • 您现在不能对这些数据中的任何一个创建约束

基本上,您是在颠覆 RDBMS 的处理方案并构建您自己的方案,因此您限制了 RDBMS 工具可以为您提供的帮助,并且让新用户更难理解该系统。

p>

我能想到的这种系统的唯一可能优势是,它可以作为一种变通方法,避免与一个完全不可能的 DBA 打交道,DBA 否决所有架构更改,无论优点如何。不幸的是,这可能会发生。

当然,凡事都有异常(exception)。我目前正在进行一个审计日志要求非常严格的项目。日志记录是在数据库中完成的,我们使用带分隔符的字段来存储字段,因为应用程序永远不会与此数据交互,它被写入一次并保持不变。

关于database - 正在分隔数据库字段中的数据 ok,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6456683/

相关文章:

mysql - 如何根据这个json设计一个表

sql - 描述 IT 环境的数据库模型

php - 如何在mysql数据库中存储用户的多个值?

android - SUM sqlite 列值 (android)

java - 在开发java桌面应用程序中创建和使用数据库

database-design - 为主键使用按位标志?

database-design - 多项选择测验引擎的数据库模式的良好设计是什么?

java - 在 jpa 标准中, "in case there is at least 1 row return true"

javascript - 使用 javascript 连接到现有的 sqlite 数据库

MySQL数据库结构(在一列中分配多个值)?