问题标签 [datamapper]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ruby - DataMapper 有 n 个条件
是否有可能与 DataMapper 创建条件关联?
例如:
我希望用户拥有 n 个应用程序,只要该用户具有该属性:developer => true
像这样的东西:
我知道这可以通过从 User 创建一个子类作为 Developer::User 并在该类中使用has n
,但我真的很想知道是否可以直接在关联声明中创建它。
我在使用 ARn 时还设法做的另一种方法是扩展关联并重写每个操作的方法。
所以在扩展模块上我可以有这样的东西:
但是,如果可能的话,我真的很想避免使用这种解决方案,但前提是可以使用 DataMapper 轻松执行快速直接的方法:)
提前致谢
ruby-on-rails - DataMapper 通过 Resource DELETE(从关联中删除)有 n 不起作用
我有这两个课,
因此,一旦我有一个新帖子,例如:
我在关联中添加和删除时遇到严重问题,例如:
我应该如何从该协会中删除帖子?我正在使用以下内容,但绝对无法正常工作:
所以我真的不知道如何从 BoltUser 数组中删除它。
php - Zend Framework应用层中的Master/Slave切换
我正在编写一个应用程序,它需要在应用程序层内进行主/从切换。就像现在一样,我在创建映射器时实例化 Zend_Db_Table 对象,然后将 setDefaultAdapter 设置为从属。
现在在基本映射器类中,我有以下方法:
我需要对此进行全面检查。我不认为开销太大,我只是怀疑必须有更好的方法。
ruby-on-rails - Ruby Datamapper 表继承与关联
我开始学习Datamapper,我喜欢它的地方是我可以用真正的继承来编写我的模型。
现在我想知道,是否有可能对此更先进:
该代码无法:title
为 and 创建列,Talk
显然,鉴别器列在这里没有什么价值,因为从数据库视图来看,应该有单独的表Talk
和Meeting
。
因此,最后,我希望Talk
并Meeting
共享与定义相同的属性,Event
但可能具有附加属性和 0..1:n 关系(会议可以有多次会谈,但有会谈没有会议。)有吗在不重复列定义和/或放弃继承的情况下实现此目的的方法?
编辑
再举一个例子:我喜欢继承的部分是,general Event
s 可以单独查询。因此,当我想知道某个:begin
日期是否有某事时,我不需要查看两个或多个表,而只需查询该Event
表即可。在某种程度上,以下结构可以满足我的需要。
但是,为了使用它,我需要Event
每次手动创建一个,我想创建或编辑一个Talk
. 也就是说,我不能做talk.begin
or Talk.create(:begin => Time.now)
。有没有办法在不修补所有功能和合并属性的情况下解决这个问题?我不想在使用模型时被提醒底层结构。
ruby-on-rails - 使用 Vim 和 Rails Datamapper 自动完成
从数据库加载模型后,有没有办法在 Vim 中自动完成?因此,例如,如果我有一个 Foo 类型的模型和一个 bar 类型的实例方法并执行以下操作
应该将 bar 显示为可能的自动完成值。我认为使用动态语言很难做到这一点,您可能必须了解数据映射器约定。
也许我采用了错误的方法,不应该考虑使用自动完成,因为有一种更简单的编码方式?
c# - 从 SQL 表中读取自定义数据
我们有一个应用程序允许用户向我们的表中添加自定义列(也许不是最好的主意,但就是这样)。
我们现在(重新)设计我们的数据访问层(我们之前真的没有),现在我们将在查询 SQL 数据库时在我们的数据映射器中使用参数化查询(之前我们连接 SQL 字符串并转义所有输入)。
现在我们正在尝试确定处理自定义列的最佳方式,以便查询、创建和更新这些记录。自定义属性将存储在我们的“业务对象”上的字典中,所以我正在考虑这样做:
查询数据
- 使用 SELECT * 获取所有列并填充我们的属性并将其余(自定义数据)存储在业务对象的字典中。
创建/更新
- 迭代表中的所有列(类似于:SELECT COLUMN_NAME FROM information_schema.columns WHERE TABLE_NAME = 'TableName'
- 通过检查字典和表中都存在哪些列,然后将字典中的值作为变量添加到 SQLCommand,生成一个 SQL 字符串(带有参数化的变量名)
还是在使用参数化查询的同时有更好的方法?
ruby - 问题为 DataMapper 安装 do_sqlite3
我已经安装了 sqlite3-ruby 以及头文件,但是由于某种原因它在检查 sqlite3_open() 时失败了
ruby - 如何使用 DataMapper 仅获取模型的指定字段?
我找不到在特定上下文中仅获取模型必要字段的方法。假设我有一个巨大的模型,它有大约 30 个字段(属性)。但出于搜索目的,我只需要其中几个。
例子:
因此,对于前端(Web 应用程序),大部分字段都被使用。但是对于搜索,我只需要说:title,:city,:state。它很容易查询数据,就像那样
然后我需要将获取的数据打包成 JSON。据我所知,DataMapper 有一个名为 dm-serialize 的模块,它处理所有这些操作。
最后,我做了输出包:
但是输出项具有所有字段,而我只需要获取其中的一些。由于某种原因,延迟加载不起作用。
问题是:如何指定要选择的模型字段?
php - 数据映射器通常是什么样的?
我有一个名为 的表Cat
和一个名为 的 PHP 类Cat
。现在我想CatDataMapper
上课,所以Cat extends CatDataMapper
.
我希望 Data Mapper 类能够提供执行 ORM 以及创建、编辑和删除 Cat 的基本功能。
为此,也许非常了解这种模式的人可以给我一些有用的建议?我觉得只提供一些像update()、delete()、save()这样的函数有点太简单了。
我意识到 Data Mapper 有这个问题:首先创建 Cat 的实例,然后初始化所有变量,如 name、furColor、eyeColor、purrSound、meowSound、attendants 等。一切都设置好后,调用 save( ) 从 CatDataMapper 继承的函数。这很简单 ;) 但是现在,真正的问题是:您查询数据库中的猫并返回一个包含大量猫数据的简单无聊的结果集。
PDO 具有一些 ORM 功能来创建 Cat 实例。可以说我使用它,或者甚至可以说我有一个带有关联数组的 mapDataset() 函数。然而,一旦我从数据集中获得了我的 Cat 对象,我就有了冗余数据。同时,20 个用户可以从数据库中获取相同的猫数据并编辑猫对象,即重命名猫,然后 save() 它,而另一个用户仍然在设置另一个 furColor。当他们所有人都保存编辑时,一切都搞砸了。
呃......好吧,让这个问题很简短:这里有什么好的做法?
oop - 数据映射器:我的解释正确吗?
我现在正试图确认我对 Data Mapper 模式的看法。所以我们开始:
A 节:
Data Mapper 是一个类,用于创建、更新和删除另一个类的对象。示例:一个名为 的类Cat
和一个名为 的数据映射器CatDataMapper
。还有一个名为cats
. 但它也可以是一个名为 的 xml 文件cats.xml
,或一个名为 的硬编码数组cats
。Data Mapper 的全部意义在于将使用 Cat 类的业务逻辑从思考“如何获得现有的猫”或“如何拯救猫”、“在哪里拯救猫”的思考中解放出来。作为 Data Mapper 的用户,它看起来像一个带有明确定义的方法的黑盒,例如 getCat(int id)、saveCat(Cat catObject)、deleteCat(Cat catObject) 等。
B 部分: 首先我认为如果 Cat 继承自 CatDataMapper 会很聪明,因为调用这样的函数会更方便一些。例如,像 catWithId(int id) 这样的方法可以是静态的(类方法)并返回一个 Cat 的实例,用来自任何地方的数据进行初始化。当我在代码中使用 cat 对象时,我可以简单地调用 myCat->save(); 将其存储在 Data Mapper 将其存储的任何位置(不管在哪里以及如何,Data Mapper 对用户隐藏了这种复杂性)。
总之,我现在有点困惑 ;) 你认为Section A对 Data Mapper 模式有效吗?如果我按照B 节中的描述额外做,那会很糟糕吗?为什么?