问题标签 [class-table-inheritance]
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.
wordpress - Doctrine 2.1 - 将实体映射到多个表
我有以下数据库情况:
现在我已经尝试了几个小时将这两个表“融合”成一个User
实体,例如:
有没有办法在不修改wp_user
表的情况下完成这样的映射(出于更新原因我不想这样做)?
ruby-on-rails - 使用类表继承模型处理表单
我想使用,form_for
除了我有使用citier
gem 的类表继承模型。它们是这样定义的:
问题是我希望表单的第一部分填写Fruit
模型的属性。然后根据关于什么类型的水果 ( Apple
, Banana
) 的选择字段,然后我想填写该特定模型的属性,但我仍然希望使用form_for
助手进行验证。关于如何解决这个问题的任何建议......或额外的澄清?谢谢。
ruby-on-rails - Rails 中资产单表继承的优缺点
我正在查看文件上传 gem,似乎倾向于将所有资产放在单个“资产”表中,并使用 STI 对它们进行子类化。比如ImageAsset
, VideoAsset
,AudioAsset
等。
我是 Rails 新手,从未使用过 STI。以前我只会制作images
, videos
,audios
单独的表格。当然,他们可能会共享几列,但我会说他们也会有一些不同的列(采样率不适用于图像,例如)
将所有这些填充在一个“资产”表中的优点:更容易对所有资产运行查询。缺点:桌子会更快变大。我想如果这是一个问题,我总是可以在“类型”列上分片。此外,我预计所有仅音频列在图像行等上都将为空。
我的整个应用程序将基于资产,所以我想在做出决定之前确保我有直截了当的利弊。有没有人做过 STI 资产并后悔过?有没有人做过并且不后悔(对于大量资产)?CTI(类表继承)在这里会是更好的解决方案吗?
mysql - 类表继承 (CTI) 和插入 Select 语句
我正在努力在 MySQL 中构建一个继承数据库模型,以便所有表都继承自一个由object
表表示的基本类型(对象)。这允许 Notes 链接到数据库内任何表中的任何对象,同时保持引用完整性。设计看起来像这样(有更多具有类似结构的子表):
使用这种设计,我可以做一个以人为主题的笔记,以另一个笔记为主题的笔记,或以从对象继承的许多其他表之一作为主题的笔记(这些表未列出简洁)。虽然不能通过参照完整性来强制执行,但是这种设计的一个前提是每个object_id只用在一个子表的一行中,这样就没有note_id也是person_id的note。
当我想INSERT... SELECT
对 person 或 note 执行语句时,就会出现问题。假设我有一个user
表,我想将所有用户插入到person
. 首先,我必须将person
要创建的新行数插入object
,然后我需要将新行插入person
,但我无法将每一user
行与object
一行匹配以填充 person_id 列。
我的第一个想法是创建一个可以创建新记录并相应更新值的BEFORE INSERT TRIGGER
on 。不幸的是,外键约束在触发器被触发之前被评估,在我纠正它之前捕获了我的孤立行。 person
object
NEW.person_id
我正在寻找的是一种更改约束执行顺序的方法,以便 BEFORE INSERT 触发器在约束之前,或者是一种更优雅的方法来实现 MySQL 中的类表继承数据库结构。
sql - 理解类表继承
我有一个名为products
它的产品表,它有 3 个字段(名称、型号(PK)和类名)。类对应一个表。所以这里有一个例子:
产品表:
安培表:
问题:
我是否应该有一个包含 PK(模型)及其相应类名的表,然后在我的产品表中使用类 ID?拥有一个包含所有模型及其类的表会更有效吗?
ruby-on-rails - 在类表继承中,如何让父母和孩子使用相同的id?
我有两个课程:Topic
和Buy::Topic
。后者是前者的子类,通过外键 ( Buy::Topic.topic_id == Topic.id
)。所以本质上这是使用类表继承模式。
Buy::Topic
有自己的和指向父对象id
的外键。topic_id
Topic
但是,我想确保 id与来自父级的 idBuy::Topic
相同,如下所示:topic_id
#<Topic id: 22598>
和
#<Buy::Topic id: 22598, topic_id:22598
这在 Rails 中可行吗?这对于 SEO 目的更好,并且可以更轻松地处理 Cancan 的load_and_authorize_resource
(有时 cancan 使用两者的错误 id 来查找东西)。
UDPATE:
这个模式已经设置并完成了很长时间,所以现在不太可能将其更改为 STI。
php - 无法插入具有类表继承的新实体(Doctrine 2.2)
我在 Doctrine 2.2 中使用类表继承模式。我的数据库架构如下:
父
access_id(主键)
access_type(鉴别列)
access_role access_acl access_primary
user_id
(
外键)
Child 1
access_id(外键)
account_id(外键)
Child 2
access_id(外键)
distributor_id(外键)
当我尝试向数据库中插入一个新实体时,父查询看起来不错,但子查询有一个额外的参数。当我转储正在执行的查询时,这就是我所看到的:
'2' 索引是无关的。'1' => 39, '2' => 3 是正确的参数。
用于执行此查询的代码如下:
python - Sqlalchemy 存在联合继承和 Firebird
我尝试使用 sqlaclhemy 连接表继承,但发生了奇怪的情况。
当我写查询时:
它给我带来了这样的东西:
这不起作用,因为存在子句中的对象覆盖了外部对象。由于我使用的解决方法直接来自 sqlexpression,
但它很大程度上取决于列名和表名。
如何在存在语句中为对象表指定别名?
Debian wheezy,python-2.7.3rc2,sqlaclhemy 0.7.7-1
ruby-on-rails - 堆栈级别太深(更改模型继承时)
我正在尝试使用citier gem以下列方式转换一些已经存在的模型。到目前为止,这有效:
创建的模型:
我添加acts_as_citier
到两个模型中,创建并运行迁移没有问题。数据库视图也被创建。现在,如果我尝试对现有模型执行此操作:
前:
后:
然后我尝试运行类似rails g migration
or的任何命令rails console
,我得到:
script/rails:6: stack level too deep (SystemStackError)
不幸的是,除了怀疑我在某处有无限循环之外,这并没有告诉我很多。有谁知道这可能是什么原因造成的?或者知道我可以在哪里查看或获取有关该问题的更多信息?不得不从头开始重新创建模型以与 citier 合作,这对我来说不是一个好的解决方案......
ruby-on-rails - How do I implement class-table-inheritance in Rails?
I just finished working my way through the book Agile Web Development with Rails, fourth edition (http://pragprog.com/book/rails4/agile-web-development-with-rails), and need some help in understanding how to create a parent-child relationship between models. I did some Googling and poked around here on StackOverflow and learned generally about single table inheritance and class table inheritance.
I have a bunch of metadata about different items in an archival collection. Much of the metadata is the same for all objects, e.g., accession number, title, description, copyright, etc. In addition to the common metadata, there is metadata that is only applicable to certain types of items, e.g., photos need to keep track of whether the item is in color or black and white; sound recordings need to keep track of the format (CD, DAT, cassette tape, etc.) and duration; text materials need to keep track of the number of pages; etc.
Since I will have many thousands of records I have ruled out single table inheritance as being too inefficient. I understand the idea of class table inheritance as presented here: http://martinfowler.com/eaaCatalog/classTableInheritance.html but am confused on how I would actually implement this in a new Ruby on Rails project. Do I implement class table inheritance as a polymorphic association (http://guides.rubyonrails.org/association_basics.html#polymorphic-associations) or am I on the wrong track?
Thank you.