MySQL - 存储多个字段或一个CSV字段?

问题描述 投票:0回答:2

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

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

我不太喜欢CSV方法,它也需要后处理来过滤数据,但多列对我来说似乎不好。我正在考虑这个问题,但是在一个单独的表中,就像格式中的PRODUCTS_AVAILABILITY一样

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

我应该使用什么方法?

mysql csv product
2个回答
0
投票

多个字段。

如果不是,您需要在进行任何处理之前将数据拉出到编程语言中。您将无法索引数据。

阅读数据库规范化


0
投票

您应该使用多个表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...}');
© www.soinside.com 2019 - 2024. All rights reserved.