我有一个PRODUCTS表,并且需要实现一个可用性系统,以便能够按工作日过滤产品(例如,产品仅在星期五提供)。
我不确定是否应该添加一个包含7个逗号分隔的bool值的“可用性”列,每个值代表每个工作日,还是添加7个不同的列。
我不太喜欢CSV方法,它也需要后处理来过滤数据,但是对于我来说,多列似乎不是一个好习惯。 我当时在想,但在另一个表格中,例如格式为PRODUCTS_AVAILABILITY
| id | mon | tue | wed | etc...
我应该使用哪种方法?
答案 0 :(得分:0)
多个字段。
如果没有,则在进行任何处理之前,您需要将数据提取为编程语言。您将无法为数据建立索引。
继续阅读数据库规范化
答案 1 :(得分: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...}');