繁体   English   中英

MySQL-是存储多个字段还是一个CSV字段?

[英]MySQL - Storing multiple fields or one CSV field?

我有一个PRODUCTS表,并且需要实现一个可用性系统,以便能够在工作日内过滤产品(例如,产品仅在星期五提供)。

我不确定是否应该添加一个包含7个逗号分隔的bool值的“可用性”列,每个值代表每个工作日,还是添加7个不同的列。

我不太喜欢CSV方法,它也需要后处理来过滤数据,但是对我来说,多列似乎不是一个好习惯。 我当时在想,但在单独的表格中,例如格式为PRODUCTS_AVAILABILITY

| id | mon | tue | wed | etc...

我应该使用什么方法?

多个字段。

如果没有,您将需要在进行任何处理之前将数据提取到编程语言中。 您将无法为数据建立索引。

继续阅读数据库规范化

您应该使用多对多表PRODUCTS_AVAILABILITY:

product_id | day | availability

或一个表产品中的json字段(如果使用MySQL 5.7+) https://dev.mysql.com/doc/refman/5.7/en/json.html

...fields | availability 
            JSON_TYPE('{1:true, 2:false...}');

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM