首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQLiteStudio自动插入值

SQLiteStudio自动插入值
EN

Stack Overflow用户
提问于 2020-05-14 15:31:47
回答 1查看 343关注 0票数 0

我有一个用SQLiteStudio创建的数据库,它有一个products表,其中包含两个列,项目和价格。它还有一个sales表,其中有一个item列,该列链接到products中的item列。我希望products.price sales表也有一个列,其值自动设置为与从products.item列中选择的值相对应的行的值。如何定义sales.price列以便自动设置此值?

此外,products表中的价格可能会不时更改,但任何现有sales记录中列出的价格都不能在完成时更新。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-14 16:55:29

SQLite有在其他DBMSes中找到的生成的列(也称为表达式列)。但是您需要一个比较新的SQLite版本:

生成的列支持是用SQLite版本3.31.0 (2020-01-22)添加的。如果较早版本的SQLite试图读取其架构中包含生成列的数据库文件,则该早期版本将将生成的列语法视为错误,并报告数据库架构已损坏。

来源:生成列

您可以简单地构建一个视图来对您的表进行一些扩展。

你已经提到,价格会随着时间的推移而变化,这是完全正常的。因此,您至少有两个设计选择:

  1. 添加一个额外的表来存储价格历史记录,在该表中存储产品ID、价格、开始日期和结束日期(例如)。然后你把它和其他的桌子连接起来。有效价格应根据定单日期确定。这也意味着价格将存储在该表中,而不是products中.您必须稍微重新设计您的模式。
  2. 另一种选择是将产品的单价作为历史值存储在sales表中。这是出售时有效的价格。

需要考虑的一点是:您可能需要在定价方面具有更大的灵活性:它可以取决于客户(基于数量的不同费率),也可以取决于具体情况。最终的价格可能是无数复杂计算的结果。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61801337

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档