Flex开源展示之SHELF_PIC

本文介绍了一款名为PicShelf的开源Flex应用,该应用能够以独特的方式展示图片,并提供了一个示例DEMO供用户体验。为了促进学习交流,本文还提供了源代码下载链接。

开源展示之PicShelf

很多博客都会展示写优秀的应用,一般这些应用都会在当天的RSS订阅中出现,所以自然很自然。不过想想也许不是大家都订了那么多的博客吧,所以呢我就决定从今天开始设置这么个栏目专门展示些FLEX应用,我一般会选取开源的应用,这样便于大家交流学习和研究,这些东西希望对大家有用。

今天是这个系列的第一个帖子,我想讲的是今天看见的一个很酷的应用PIC SHELF更可贵的是它是开源的

这是DEMO链接

http://demo.quietlyscheming.com/displayShelf/index.html

我截了张图:参看

源代码地址,参看 http://demo.quietlyscheming.com/displayShelf/download/index.html其实右击也能找到了我个人还有个计划就是注释一些优秀的开源代码,但是一个人的力量始终有限,如果大家对此有同感的话,请务必回复告诉我,对这个应用的讨论也欢迎留言。
根据原作 https://pan.quark.cn/s/459657bcfd45 的源码改编 Classic-ML-Methods-Algo 引言 建立这个项目,是为了梳理和总结传统机器学习(Machine Learning)方法(methods)或者算法(algo),和各位同仁相互学习交流. 现在的深度学习本质上来自于传统的神经网络模型,很大程度上是传统机器学习的延续,同时也在不少时候需要结合传统方法来实现. 任何机器学习方法基本的流程结构都是通用的;使用的评价方法也基本通用;使用的一些数学知识也是通用的. 本文在梳理传统机器学习方法算法的同时也会顺便补充这些流程,数学上的知识以供参考. 机器学习 机器学习是人工智能(Artificial Intelligence)的一个分支,也是实现人工智能最重要的手段.区别于传统的基于规则(rule-based)的算法,机器学习可以从数据中获取知识,从而实现规定的任务[Ian Goodfellow and Yoshua Bengio and Aaron Courville的Deep Learning].这些知识可以分为四种: 总结(summarization) 预测(prediction) 估计(estimation) 假想验证(hypothesis testing) 机器学习主要关心的是预测[Varian在Big Data : New Tricks for Econometrics],预测的可以是连续性的输出变量,分类,聚类或者物品之间的有趣关联. 机器学习分类 根据数据配置(setting,是否有标签,可以是连续的也可以是离散的)和任务目标,我们可以将机器学习方法分为四种: 无监督(unsupervised) 训练数据没有给定...
<think>嗯,用户现在的问题是关于如何将inventory表中的shelf_id字段与shelves表中的shelf_id关联,并自动更新那些在inventory表中shelf_id为空的数据。之前他们问过如何根据rack和shelf字段生成shelf_id,现在可能是在扩展需求,或者需要更动态的更新方式。 首先,我需要确认用户的具体需求。他们可能希望inventory表中的shelf_id引用shelves表的shelf_id,确保数据一致性。之前的解决方案是直接计算生成shelf_id,但现在可能需要关联另一个表,或许shelves表中的shelf_id是基于某种规则生成的,用户现在想利用这个已有的关联来填充inventory中的缺失值。 可能的场景是,inventory表中的shelf_id应该对应shelves表中的某个条目,但由于某些原因,部分记录的shelf_id为空,现在需要根据某种逻辑来自动填充这些空值。可能需要通过两个表之间的某些共同字段进行关联,比如rack和shelf字段,类似于之前的问题中的计算方式,但这次需要关联到另一个表。 接下来,我需要考虑如何建立这两个表之间的联系。如果shelves表中的shelf_id是基于rack和shelf字段生成的,那么可以通过这些字段作为连接条件,将inventory表和shelves表连接起来,然后从shelves表中获取对应的shelf_id来更新inventory表。 但用户可能没有明确说明两个表之间的关联字段是什么。假设inventory表中有rack和shelf字段,而shelves表中也有这两个字段,并且shelf_id在shelves表中是唯一确定的,那么可以使用这两个字段作为连接条件。或者,可能shelves表的shelf_id就是根据rack和shelf计算得来的,如之前的公式,这时候可能需要检查shelves表中的shelf_id是否与之前计算的公式一致。 接下来需要构建正确的SQL语句。使用UPDATE结合JOIN,根据rack和shelf字段匹配两个表,将shelves表的shelf_id更新到inventory表中。但需要注意不同的数据库系统可能有不同的语法,比如MySQL使用JOIN,而PostgreSQL可能使用FROM ... WHERE。此外,需要确保只更新那些inventory表中shelf_id为空的记录,避免覆盖已有数据。 此外,还需要考虑数据一致性和是否存在多个匹配的情况。如果shelves表中存在多个相同的rack和shelf组合,可能会导致更新错误,因此需要确保shelves表中的rack和shelf组合是唯一的,或者在连接时使用DISTINCT或子查询来避免重复。 用户可能还需要先验证连接是否正确,通过SELECT语句检查匹配情况,再执行更新。同时,备份数据仍然是一个重要的步骤,尤其是在生产环境中,避免误操作导致数据丢失。 总结,用户的需求是将inventory表中的shelf_id与shelves表关联,并填充缺失值。解决方案是通过两表的关联字段(如rack和shelf)进行连接,然后从shelves表中获取对应的shelf_id来更新inventory表。需要处理不同数据库的语法差异,确保唯一匹配,并在执行前进行验证和备份。</think>要让 `inventory` 表的 `shelf_id` 字段与 `shelves` 表的 `shelf_id` 字段关联,并自动更新 `inventory` 表中缺失的 `shelf_id` 数据,可以通过以下步骤实现: --- ### **核心思路** 通过 **关联字段**(如 `rack` 和 `shelf`)将 `inventory` 表与 `shelves` 表连接,从 `shelves` 表中获取对应的 `shelf_id`,更新到 `inventory` 表的缺失值中。 --- ### **SQL 更新语句示例** 假设 `inventory` 表和 `shelves` 表通过 `rack` 和 `shelf` 字段关联(需确保两表的这两个字段逻辑一致): ```sql -- MySQL/PostgreSQL/SQL Server 语法 UPDATE inventory SET shelf_id = shelves.shelf_id FROM inventory JOIN shelves ON inventory.rack = shelves.rack AND inventory.shelf = shelves.shelf WHERE inventory.shelf_id IS NULL; -- 仅更新缺失值 ``` --- ### **详细步骤说明** 1. **关联字段确认** 确保 `inventory` 表和 `shelves` 表之间存在可关联的字段(例如 `rack` 和 `shelf`),且这些字段的值在 `shelves` 表中唯一确定一个 `shelf_id`。 2. **验证关联逻辑** 先通过 `SELECT` 检查是否能正确匹配数据: ```sql SELECT inventory.*, shelves.shelf_id AS target_shelf_id FROM inventory LEFT JOIN shelves ON inventory.rack = shelves.rack AND inventory.shelf = shelves.shelf WHERE inventory.shelf_id IS NULL; -- 查看待更新的目标值 ``` 3. **执行更新操作** 根据数据库类型调整语法: - **MySQL**: ```sql UPDATE inventory JOIN shelves ON inventory.rack = shelves.rack AND inventory.shelf = shelves.shelf SET inventory.shelf_id = shelves.shelf_id WHERE inventory.shelf_id IS NULL; ``` - **PostgreSQL/SQL Server**: ```sql UPDATE inventory SET shelf_id = shelves.shelf_id FROM shelves WHERE inventory.rack = shelves.rack AND inventory.shelf = shelves.shelf AND inventory.shelf_id IS NULL; ``` 4. **验证结果** 更新后检查是否仍有空值: ```sql SELECT * FROM inventory WHERE shelf_id IS NULL; ``` --- ### **注意事项** 1. **唯一性约束** 确保 `shelves` 表中的 `rack` 和 `shelf` 组合是唯一的,否则可能导致更新多值错误。如果存在重复,需先去重: ```sql -- 示例:选择第一条匹配的 shelf_id UPDATE inventory SET shelf_id = ( SELECT shelf_id FROM shelves WHERE inventory.rack = shelves.rack AND inventory.shelf = shelves.shelf LIMIT 1 ) WHERE shelf_id IS NULL; ``` 2. **备份数据** 操作前建议备份 `inventory` 表: ```sql CREATE TABLE inventory_backup AS SELECT * FROM inventory; ``` 3. **外键约束(可选)** 如果 `shelf_id` 是外键,确保 `shelves` 表中存在对应的值: ```sql ALTER TABLE inventory ADD CONSTRAINT fk_shelf_id FOREIGN KEY (shelf_id) REFERENCES shelves(shelf_id); ``` --- ### **适用场景** - **场景 1**:`shelves` 表是主表,存储了所有货架信息,`inventory` 表是子表,需引用其 `shelf_id`。 - **场景 2**:`shelves` 表的 `shelf_id` 是通过复杂逻辑生成的(例如结合仓库编号、区域编码等),直接关联更高效。 -- 通过以上步骤,可以安全地将 `shelves` 表的 `shelf_id` 关联到 `inventory` 表,并自动填充缺失值。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值