Tag: orm

Django“无法添加或更新子行:外键约束失败”

我有一个模型Coupon ,以及一个带有ForeignKey的模型Photo : class Photo(models.Model): coupon = models.ForeignKey(Coupon, related_name='description_photos') title = models.CharField(max_length=100) image = models.ImageField(upload_to='images') 我在pipe理员中设置内联,所以现在我可以从pipe理员添加照片到优惠券。 我试图添加一个,上传成功,但是我得到了Django的debugging页面,出现这个错误: IntegrityError at /admin/coupon/coupon/321/ (1452, 'Cannot add or update a child row: a foreign key constraint fails (`my_project`.`coupon_photo`, CONSTRAINT `coupon_id_refs_id_90d7f06` FOREIGN KEY (`coupon_id`) REFERENCES `coupon_coupon` (`id`))') 这是什么,我该如何解决这个问题? (如果重要的话,这是一个MySQL数据库。) 编辑:我试过一个Sqlite3数据库有一个稍微不同的数据集,它的工作,所以也许有松散的数据在我当前的数据库? 我如何find并删除它?

生活没有JOINs …理解和常见的做法

很多“BAW”(大屁股网站)正在使用数据存储和检索技术,这些技术依赖于具有索引的巨大表格,并且使用不会/不能在查询中使用JOIN的查询(BigTable,HQL等)处理可扩展性和分片数据库。 当你有很多非常相关的数据时,这是如何工作的? 我只能推测,这个join的大部分都是在应用程序方面完成的,但是不会开始变得昂贵? 如果你不得不对几个不同的表进行几个查询来获得信息进行编译呢? 是不是碰到数据库,多次开始比首先使用联接更昂贵? 我想这取决于你有多less数据? 对于通常可用的ORM,他们如何倾向于处理无法使用连接? 在今天使用率很高的ORM中是否有这种支持? 或者大多数需要处理这个级别的数据的项目往往会自行推出? 所以这不适用于我目前正在进行的任何项目,但现在我已经有好几个月的时间了,我只能猜测“最佳实践”是什么。 我从来没有必要在我的任何项目中解决这个问题,因为他们从未达到需要的规模。 希望这个问题也能帮助其他人。 正如下面有人所说,没有联接,ORM“不工作”。 是否有其他数据访问层已经可供开发人员处理此级别的数据? 编辑:对于一些澄清, Vinko Vrsalovic说: “我相信snicker是想谈论NO-SQL,其中事务数据是非规范化的,并在Hadoop或BigTable或Cassandrascheme中使用。 这就是我所说的。 奖励积分为那些谁赶上xkcd参考。

使用SQLAlchemy ORM批量插入

有没有办法让SQLAlchemy做一个批量插入,而不是插入每个单独的对象。 即 这样做的: INSERT INTO `foo` (`bar`) VALUES (1), (2), (3) 而不是: INSERT INTO `foo` (`bar`) VALUES (1) INSERT INTO `foo` (`bar`) VALUES (2) INSERT INTO `foo` (`bar`) VALUES (3) 我刚刚转换了一些代码来使用sqlalchemy,而不是原始的sql,虽然现在好多了,但现在看起来比较慢(高达10倍),我想知道这是否是原因。 也许我可以更有效地改善使用会话的情况。 目前我有autoCommit=False ,并添加了一些东西后,做一个session.commit() 。 虽然这似乎导致数据如果数据库在其他地方更改,如果即使我做了一个新的查询,我仍旧得到旧的结果? 谢谢你的帮助!

SQLAlchemy:如何过滤date字段?

这里是模型: class User(Base): … birthday = Column(Date, index=True) #in database it's like '1987-01-17' … 我想在两个date之间过滤,例如select间隔18 – 30年的所有用户。 如何用SQLAlchemy实现它? 我想: query = DBSession.query(User).filter( and_(User.birthday >= '1988-01-17', User.birthday <= '1985-01-17') ) # means age >= 24 and age <= 27 我知道这是不正确的,但如何做到正确? 提前致谢!

客户端JavaScript ORM有哪些选项可用?

有多个可用的JavaScript ORM 活性 Data.js: http : //datajs.codeplex.com/documentation – 数据查询库 JayData: http ://jaydata.org/ – 活跃,数据build模,查询,caching Breeze.js: http ://www.breezejs.com/ – 活跃,数据build模,查询,caching 持久性:http: //zef.me/2774/persistence-js-an-asynchronous-javascript-orm-for-html5gears – asynchronous,浏览器和客户端支持 待用 JazzRecord: http : //www.jazzrecord.org/ – 以Ruby为中心,自2011年以来一直处于非活动状态 Impel: http : //impel.simulacre.org/ – 两年内似乎没有活跃 Active.js http://www.activejs.org/ – 3年内似乎没有活跃 Upshot.js: https ://nuget.org/packages/Upshot:不再支持 Aptana: http : //blog.fedecarg.com/2009/02/16/activerecord-javascript-orm/ – Rails,网站不会将活动显示为ORM 那么就有属于特定MVC框架的ORM。 Sproutcore: http : //www.sproutcore.com/ 主干: […]

AngularJS:创build映射到REST资源的对象(ORM样式)

我对AngularJS很新,但是我很不清楚如何将其绑定到我的服务器的REST Api后端。 例如,假设我有一个通过GET-ing获取的“image”资源:myApi / image / 1 /。 这返回一个json对象与各个领域。 我们来说一下: {url: "some/url", date_created: 1235845} 现在,我想在这个“Image”对象的AngularJS应用程序中进行某种表示。 这种表示不仅仅是字段的映射 – 我想添加“帮助器”函数,例如将date_create字段转换为人类可读的函数。 我知道$资源服务,但我不清楚我需要做什么来创build一个基本的“类”Angular,使用资源获取JSON对象,但通过添加各种帮助器function,然后增强它。 奖励积分: 我也不清楚如何添加模型之间的“关系”。 例如,我可能有一个“用户”资源,它里面embedded了一个“图像”资源,我想要抓住用户资源,但能够调用“图像”帮助function的“图像”部分该模型。

在Laravel Eloquent中使用“with()”函数获取特定的列

我有两个表User和Post One User有很多posts ,一个post只属于一个user 。 在我的User模型中,我有许多关系 public function post(){ return $this->hasmany('post'); } 而在我的post模式,我有belongsTo像关系 public function user(){ return $this->belongsTo('user'); } 现在我想要使用Eloquent with()join这两个表Eloquent with()但希望第二个表中的特定列。 我知道我可以使用query Builder但我不会使用它。 当我在post模式写我 public function getAllPosts() { return Post::with('user')->get(); } 它运行以下queires select * from `posts` select * from `users` where `users`.`id` in (<1>, <2>) 但我想要 select * from `posts` select id,username from `users` […]

为什么django的prefetch_related()只能和all()而不是filter()一起工作?

假设我有这个模型: class PhotoAlbum(models.Model): title = models.CharField(max_length=128) author = models.CharField(max_length=128) class Photo(models.Model): album = models.ForeignKey('PhotoAlbum') format = models.IntegerField() 现在,如果我想有效地查看专辑子集中的照片子集。 我这样做: someAlbums = PhotoAlbum.objects.filter(author="Davey Jones").prefetch_related("photo_set") for a in someAlbums: somePhotos = a.photo_set.all() 这只有两个查询,这是我所期望的(一个拿到相册,然后像`SELECT * IN photos WHERE photoalbum_id IN()。 一切都很好。 但是,如果我这样做: someAlbums = PhotoAlbum.objects.filter(author="Davey Jones").prefetch_related("photo_set") for a in someAlbums: somePhotos = a.photo_set.filter(format=1) 然后它用WHERE format = 1做了大量的查询! 我做错了什么或是Django不够聪明,意识到它已经提取所有的照片,并可以在Python中过滤它们? […]

Hibernate,iBatis,Java EE或其他Java ORM工具

我们正在规划一个大型企业应用程序。 在经历了J2EE的痛苦之后,我们将重点放在评估hibernate上。 它看起来像新的Java EE API更简单。 我还读了一些关于Hibernate和iBatis的好消息。 我们的团队对于任何框架都没有什么经验。 有5个主要的比较点我想确定 学习曲线/易用性 生产率 可维护性/稳定性 性能/可扩展性 易于排除故障 如果您要pipe理一个具有J2EE经验的开发人员团队,您将使用哪种ORM工具,为什么?

JPA中的多个唯一约束

有没有一种方法来指定使用JPA,应该有不同的列集上的多个唯一约束? @Entity @Table(name="person", uniqueConstraints=@UniqueConstraint(columnNames={"code", "uid"})) public class Person { // Unique on code and uid public String code; public String uid; // Unique on username public String username; public String name; public String email; } 我已经看到一个冬眠特定的注释,但我试图避免供应商的具体解决scheme,因为我们仍然决定hibernate和数据核心之间。