草庐IT

parent-child

全部标签

mysql - 创建父子表,child 是否需要自己的主 id 列?

我们在创建父子表时,子表是需要自己的主键,还是应该使用父表的外键作为主键?例子:我有一个存储用户的表,其定义如下:CREATETABLEusers('id'bigint(20)UNSIGNEDNOTNULLAUTO_INCREMENT,'username'varchar(32),PRIMARYKEY('id'))我想制作第二张表来存储更多关于用户的信息,比如他们最喜欢的动物。该表是否应该有自己的“id”列以及链接用户的单独外键?:CREATETABLEusers_extra_info('id'bigint(20)UNSIGNEDNOTNULLAUTO_INCREMENT,'fk_use

java - Hibernate:加入带有额外列的表格,从一侧删除 child

场景如下我有2个表,公司和Activity。一家公司可以有一项或多项Activity。其中一项Activity是“主要”Activity,所有其他Activity都是次要Activity。为了处理这个问题,我为连接表创建了2个实体(Activity、Company)和第三个实体,即CompanyActivity我用了thistutorial作为起点在我的代码下面(省略了getter和setter)公司.java@Entity@Table(name="T_COMPANY")publicclassCompany{@Id@Column(name="COM_ID")@GeneratedValu

mysql - Sequelize : Parent with at least one children

我有一个大致如下的关系:Parent:[id,name]Children1:[id,parent_id,name]Children2:[id,parent_id,name]Children3:[id,parent_id,name]Children4:[id,parent_id,name]Parent.hasMany->Children1.hasMany->Children2.hasMany->Children3.hasMany->Children4所以,如果我这样做:Parent->findOne({include:[{model:Children1},{model:Children2

具有约束的主要 child 的 MySQL 集 ID

我有两个MySQL表,两者之间的主要关系是一对多。我还需要在parent_table中与child_table中的主要记录的ID建立一对一的关系。你可以把它想象成一个父亲有很多child,但有一个child是他最喜欢的;P。是否可以设置一个数据库约束,以便只有当child是parent的child时,parent才能拥有child的ID?parent_table(One)id:PrimaryKeyprimary_child_id:{IDfromchildtable}child_table(Many)id:PrimaryKeyparent_table:{IDfromparenttable

MySQL 删除层次结构中的所有 "child"元素

我有一个层次结构样式的MySQL数据库设置。有4个表,分别称为pages、regions、elements和content。页面在顶部,内容在底部。简化:页面有列:idregions有以下列:idpage_idelements包含以下列:idregion_idcontent包含以下列:idelement_id我希望能够仅使用页面的id删除页面的所有子页面。到目前为止,我已经能够使用嵌套的select语句通过页面的id选择底部内容,但这不会选择元素、区域或页面。SELECT*FROM`content`WHERE`element_id`IN(SELECT`id`FROM`elements`

mysql - SQL 查询以选择在同一列中具有不同值的子记录的父级

此数据库具有一对多关系,其中父表Customers是客户列表,子表Orders是客户购买的商品列表。我正在尝试开发一个查询来选择同时购买了电视和沙发的客户。以下查询返回0个结果。SELECTCustomer.*FROMCustomerJOINOrdersONCustomer.ID=Orders.customerIDWHEREOrders.item='television'ANDOrders.item='couch';将AND替换为OR是行不通的,因为它会返回同时购买了两件商品或仅购买其中一件商品的客户。我的目标结果只是购买了两者的客户。 最佳答案

mysql - parent_id 外键(自引用)和 null?

阅读BillKarwin的书“SQL反模式”,第3章,朴素树(邻接表,父子关系)有一个评论表的例子。CREATETABLEComments(comment_idSERIALPRIMARYKEY,parent_idBIGINTUNSIGNED,commentTEXTNOTNULL,FOREIGNKEY(parent_id)REFERENCESComments(comment_id));示例数据|comment_id|parent_id|comments|------------|----------|-------------------------------------|1|NULL

mysql - 通过第 n 个 child ID 获得最高的 parent ?

现在有一个问题,我们通常使用这种技术来维护父子关系,即我们将所有实体存储在一个具有parent_id列的表中,并且所有最上面的父级都有0在parent_id列中,这是一种很好的规范化技术,我同意,但也有一个缺点,它速度慢且效率低下。这主要是由递归引起的,比如对于每个父节点,我们必须一次又一次地运行查询来生成一棵树SELECTidFROM`table`WHEREparent_id=something我看过一些解决方案,有些人可能会尝试通过一次又一次地运行查询来使用任何编程语言来实现,这会给服务器带来负载,有些人提供了存储过程,但也涉及递归。所以我的问题是我们可以用一个数据库查询树(连接或

如何将多维阵列键更改为Childs键值?

我试图将多维阵列中的父键重命名为子密钥的值。例如,在下面的代码中,我想将密钥[0]更改为[111],然后将密钥[1]更改为[222],因此我很容易稍后识别键以进行数组合并。Array([0]=>Array([product_id]=>111[product_name]=>Foo[quantity]=>4)[1]=>Array([product_id]=>222[product_name]=>Bar[quantity]=>2))我尝试了各种方法的方法,但是在进入循环后,我无法弄清楚如何影响父键,并假设将其传递给变量后是不可能的。是否有一个简单的解决方案可以更改我缺少的密钥,还是进入循环并使用所需

java - MySQL : Cannot delete or update a parent row: a foreign key constraint fails 中的@OneToMany 错误

我有一个一对多的关系如下@Entity@Table(name="reminderheader")publicclassReminderHeaderimplementsSerializable{@Id@org.hibernate.annotations.GenericGenerator(name="REMINDER_HEADER_GEN",strategy="native")@GeneratedValue(generator="REMINDER_HEADER_GEN")@Column(name="id",unique=true,nullable=false)@Basic(fetch=Fe