首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >[MySQL]:表视图或实际表。(跟踪主键)

问[MySQL]:表视图或实际表。(跟踪主键)
EN

Stack Overflow用户
提问于 2010-01-25 18:42:35
回答 2查看 286关注 0票数 0

我有一个数据库,它有以下关系:

代码语言:javascript
复制
Transaction->Purchase->Item->Schedule

Transaction - self explanitory
Purchase - any purchase info that relates to the item being purchased (quantity, if the user purchases more than one item).  A given Transaction can have more than one Purchase_ID tied to it.
Item - Stores Item info and relates it to individual clients.
Schedule - determines the price of an item at a given time of day.

如果Transaction.TimeStamp在提供的日期范围内,我需要执行一个查询,该查询必须根据时间表选择一系列值。查询需要根据其主键从计划中选择一个值。主键不能从事务中跟踪。

为了解决这个问题,我决定创建一个表,将事务直接链接到调度的主表。

最近我发现了表视图 --这是否是制作表“视图”的合适情况?还是应该创建一个“实际的”表TransactionSchedule

代码语言:javascript
复制
transactionSchedule
Transaction_ID    Schedule_ID

我的问题是,我不理解表视图何时有用/好处是什么的具体细节。

是否有一个单独的表要跟踪事务->调度过高?

真的,任何关于这个问题的一般性指导都将不胜感激。

编辑:此查询仅用于检索已输入的数据

--谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-01-25 18:48:25

我强烈要求你把价格从时间表上直接抄袭,一旦你插入这个价格,你就马上购买。这样,您已经解决了您的问题,同时,如果您不小心(或有意)更改了计划,您将避免稍后向客户收取不同的价格。

至于与时间表的主键有关的问题,这并不是可从转换中追踪的:这是设计不良的迹象。我的意思是,想想看--你有事务中的时间戳,根据定义,时间表是使用from和to时间戳及时放置的--你为什么不能把它们联系起来呢?AFAICS计划的主键应该是item_id, from_timestamp, to_timestamp

假设您的进度表有一个from和要时间戳,我的查询将是

代码语言:javascript
复制
SELECT     ..your columns..
FROM       Transaction t
INNER JOIN Purchase    p
ON         t.id        = p.transaction_id
INNER JOIN Item        i
ON         p.id        = i.purchase_id
INNER JOIN Schedule    s
ON         i.id        = s.item_id
AND        t.timestamp BETWEEN s.from_timestamp
                           AND s.to_timestamp

至于,你是否应该使用一个视图-真的,这取决于你。视图不会比查询工作得更好或更糟,唯一的区别是定义存储在数据库中。这些方法的主要优点是

  • 人们可以在不复制查询的情况下重用定义(并将其搞砸),
  • 如果您相应地更新视图,您可以在一定程度上更改模式,并将其隐藏在应用程序中(后者的优势常常被高估)。
票数 2
EN

Stack Overflow用户

发布于 2010-01-25 18:53:16

事务记录不能将外键与计划主键链接起来吗?或者是一段多到多的关系。无论哪种方式,我在这里都不认为视图是合适的。

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

https://stackoverflow.com/questions/2134664

复制
相关文章

相似问题

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