(MySQL新手警报)
我从字段价格的API调用值中收回,它们几乎总是一个字符串,例如
u'price': u'$49.99',
有时候,有两种价格(前者价格和当前价格),API将它们放在Python列表中:
u'price': [
u'$9.99',
u'$1,099.99'
],
我的列price
定义为varchar(255)
,当价格为列表时,插入失败。我不想将这些价格分成两个单独的列。我知道我可以使用Python在插入之前将列表分解为字符串,但在MySQL中是否有办法允许字符串和列表?
答案 0 :(得分:2)
所以看起来你正试图解决两个不同的问题。首先,我认为您的模式是正确的,因为您将值存储为varchar而不是小数(特别是因为您没有对其进行计算)。
第二个MySQL使用关系代数,因此值的“列表”的概念没有意义。将每个存储为其自己的不同行(元组),并在运行时将它们连接在一起。
但是,我认为您需要考虑以下方法:
使用以下属性创建一个新表:
price_history(
price varchar(45),
date_changed datetime
)
这将使您能够正确处理从供应商返回的API调用。我认为API是非确定性的,因为可能会发生两次返回。返回应该(在我看来)总是作为列表/数组返回,以确保消费者可以始终处理响应而没有撤消负担(但这超出了范围)