之前我曾在项目上工作,将字段存储在逗号分隔或管道分隔的字符串中作为字段,这可能代表选项或类似的东西.我想知道这样做是否被认为是错误的数据库设计,应该始终使用关系表,或者有时以这种方式存储数据是否可接受?
这取决于你.数据库字段应该包含原子数据,也就是说,整个值是有意义的,但值的一部分不是.例如,我可能决定将一个人的名字存储在名为fullname的字段中,因此值为John Smith和Mary Jane等.
这是正确的,如果我将永远将这些值视为一个整体,并且永远不需要仅选择名字或姓氏,或按姓氏排序等.
如果姓氏或名字对我有意义,也许我必须在查询中按姓氏排序,那么我将创建两个字段firstname和lastName.
在您的情况下,如果分隔的项目在数据库级别不感兴趣,那么可以将它们保存在单个字段中.但是,如果您需要通过分隔项进行查询,则将它们拆分为各自的字段.