草庐IT

mysql - 在一个表中定义多个多对多关系

我需要在我的数据库中创建多个多对多关系。有一个“主”表,我们称它为“项目”。然后有3个表包含“选项”。假设我们有:类别、地区和用户。这些保存的唯一信息是项目的名称和ID。可以将多个类别、区域和用户分配给多个项目。所以我有两种创建这种关系的选择:1)为每个“选项”表创建一个关系表。每个表将包含两列:“project_id”和category_id、region_id或user_id。使用这种方法我会有3个关系表,每个表只处理一对表之间的关系。例如:*****************************project_id*category_id********************

红宝石在铁轨,命名空间,模型和多对多协会

我正在使用名称空间,并且有以下模型:classAdministradora::Owner:owner_id,:primary_key=>:administradora_owner_idbelongs_to:junta_mail,:foreign_key=>:mail_id,:primary_key=>:mail_idend在铁轨控制台i执行以下操作并正常工作:Administradora::Owner.first.owner_mailsJunta::Mail.find(4).owner_mails但是如果我尝试:x=OwnerMail.create(administradora_owner_i

mysql - 数据库架构多对多对多

我遇到了如何更改数据库模型的问题:现在我们有预定义的表类别假设表Places和People可以分配给类别,因此它看起来像这样:PeoplePeopleCategoriesCategoriesPlaceCategoriesPlaces(人可以有很多类别,类别可以有很多人,地方可以有很多类别,类别可以有很多地方)但是现在有一个新的要求:在个人资料上,根据类别显示所有相应的地点(到目前为止没有问题),并添加一个勾选框来模拟某些属性(例如在前端显示为最喜欢的地方)。Place个人资料的另一侧使用勾选框标记分配给至少一个相同类别的人。我想知道是否有一些很好的方法来对此进行建模-我唯一想到的是添加

mysql - yii2 添加 '0=1' 以查询多对多关系

我有一个项目,用户必须相互联系-就像friend一样。所以我决定通过“连接”表连接它们。看起来是权利。但是当我试图搜索friend请求时,我得到了错误,如下所述。这是我的模型用户:self::SCENARIO_CATEGORY],[['search'],'safe','on'=>self::SCENARIO_SEARCH],]);}/***@inheritdoc*/functionscenarios(){returnarray_merge(parent::scenarios(),[self::SCENARIO_CATEGORY=>['category'],self::SCENARIO_

php - 在多对多表中获取对应值和非对应值

我的sql中有一个表结构,如下所示:品牌->品牌用户BrandUser表包含userId和brandId列。我需要获取所有已注册和未注册的品牌。例如,假设我有userId=2,它在brandUser表中重复了两次,我发送了userId=2...我需要获取这两条记录,以及Brands表中的其他品牌对于哪个用户在BRANDUSER表中没有值。我写了以下查询:$col="u.id,u.username,u.firstName,bu.active,bu.userId,b.name";$sql="SELECT$colFROMbrandsbLEFTJOINbranduserbuonbu.brand

mysql - Sequelize 具有相同外键的多对多表覆盖值

我有以下结构:varUser=sequelize.define('user',{name:DataTypes.STRING});varPost=sequelize.define('post',{text:DataTypes.STRING});varPostComment=sequelize.define('postComment',{id:{type:DataTypes.BIGINT,primaryKey:true,autoIncrement:true},comment:DataTypes.TEXT});Post.belongsToMany(User,{as:'postUserComm

php - Laravel 多对多关系 - 检索模型

如果我们有这样的事情:用户编号姓名作用编号姓名购物编号姓名角色用户角色编号用户编号商店用户店铺编号用户编号快速:商店---商店用户---用户---角色用户---角色我们希望SHOP1的所有USER都具有ROLEadmin。我们怎样才能做到这一点?所有来自SHOP1的用户:$shop=Shop::find($shopId);$shop->users()->get();像这样的东西会很好:$shop=Shop::find($shopId);$shop->users()->roles->()->where('name','Admin')->get(); 最佳答案

mysql多对多关系查询

也许我只是睡着了(或者没有!),但你怎么能这样做:我有一个表(多对多),例如,有字段key1和key2,我想在其中选择与特定key2没有关系的所有key1。例如,如果我有以下内容:k1_A---k2_Ak1_A---k2_Bk1_B---k2_Ck1_C---k2_Dk1_D---k2_A我想要所有没有“k2_A”的key1,所以我希望结果是:k1_B,k1_C。谢谢,干杯 最佳答案 SELECTkey1FROMtableWHEREkey1NOTIN(SELECTkey1FROMtableWHEREkey2='k2_A');

mysql多对多关系

正在阅读教程HowtohandleaMany-to-ManyrelationshipwithPHPandMySQL.在这个问题中,我引用了“数据库架构”部分,其中规定了以下规则:Thisnewtablemustbeconstructedtoallowthefollowing:*Itmusthaveacolumnwhichlinksbacktotable'A'.*Itmusthaveacolumnwhichlinksbacktotable'B'.*Itmustallownomorethanonerowtoexistforanycombinationofrowsfromtable'A'an

mysql - sql多对多查询索引优化

我有一个我想优化的多对多查询,我应该为它创建什么索引?SELECT(SELECTCOUNT(post_id)FROMpostsWHEREpost_status=1)astotal,p.*,GROUP_CONCAT(t.tag_name)taggedFROMtags_relationtrJOINpostspONp.post_id=tr.rel_post_idJOINtagstONt.tag_id=tr.rel_tag_idWHEREp.post_status=1GROUPBYp.post_id解释idselect_typetabletypepossible_keyskeykey_lenr