标签: table-relationships

如何在一对多关系中复制另一个表的外键

我有三个表结构:tournament,groupteam.所述tournamentgroup表具有一个一对多关系,groupteam具有一个对多关系如下所示.

表结构

我如何复制的价值tournament_id,从group表到group_tournament_idteam表?

我正在寻找一个使用create语句来实现这个目标的答案

create table team (
    id serial primary key, 
    group_id int references group, 
    group_tournament_id int references group(tournament_id)
);
Run Code Online (Sandbox Code Playgroud)

当然这不起作用,因为为了引用它必须是唯一的东西,在这种情况下,tournament_id不是唯一的

当我插入团队时,我需要一种标准的方法来将tournament_idfrom 的值复制group到'team'表中group_tournament_idgroup_id insidetable

编辑:不再需要在symfony中回答,只需postgreSQL即可

postgresql database-design one-to-many table-relationships postgresql-9.6

12
推荐指数
1
解决办法
646
查看次数

如何通过sqlalchemy关系添加值时避免插入重复的条目?

假设我们在多对多关系中有两个表,如下所示:

class User(db.Model):
  __tablename__ = 'user'
  uid = db.Column(db.String(80), primary_key=True)
  languages = db.relationship('Language', lazy='dynamic',
                              secondary='user_language')

class UserLanguage(db.Model):
  __tablename__ = 'user_language'
  __tableargs__ = (db.UniqueConstraint('uid', 'lid', name='user_language_ff'),)

  id = db.Column(db.Integer, primary_key=True)
  uid = db.Column(db.String(80), db.ForeignKey('user.uid'))
  lid = db.Column(db.String(80), db.ForeignKey('language.lid'))

class Language(db.Model):
  lid = db.Column(db.String(80), primary_key=True)
  language_name = db.Column(db.String(30))
Run Code Online (Sandbox Code Playgroud)

现在在python shell中:

In [4]: user = User.query.all()[0]

In [11]: user.languages = [Language('1', 'English')]

In [12]: db.session.commit()

In [13]: user2 = User.query.all()[1]

In [14]: user2.languages = [Language('1', 'English')]

In [15]: db.session.commit()

IntegrityError: (IntegrityError) column lid …
Run Code Online (Sandbox Code Playgroud)

python sqlalchemy table-relationships flask-sqlalchemy

7
推荐指数
2
解决办法
1万
查看次数

在SQL Server中创建一对一可选约束

我有一个"主桌",称之为Customers:

 CREATE TABLE Customers (
     CustomerID int PRIMARY KEY NOT NULL,
     FirstName nvarchar(50),
     LastName nvarchar(50)
 )
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

我有一个"卫星表",称之为Customer_IllegallyObtainedInformation:

CREATE TABLE Customer_IllegallyObtainedInformation (
    CustomerID int PRIMARY KEY NOT NULL,
    CellPhonePin int,
    SexualOrientation varchar(20),
    EmailPassword varchar(50)
)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

现在,我想要的是从Illegal表回到主Customers表的外键约束:

在此输入图像描述

换一种说法:

  • 可能Customer 没有一个Illegal条目
  • 但也有可能永远是一个Illegal没有进入Customer

我的本能是在SQL Server数据库图中拖动

  • IllegalTOCustomers

指示SQL Server Customers_IllegallyObtainedInformation是关系中的"子".相反,SQL Server中发生的事情使它成为一对一的关系:

在此输入图像描述

这意味着如果您尝试插入a …

sql-server table-relationships sql-server-2008-r2 relationships

6
推荐指数
3
解决办法
4844
查看次数

如何在没有 SQL Server Management Studio 的情况下使用 SQL Server Express LocalDB 中的 Visual Studio 2013 创建两个表之间的关系?

我可以通过在 Visual Studio 2010 中右键单击并选择表设计器中的关系,使用 SQL Server Express 非常轻松地创建表关系。如何在不使用 SQL Server Management Studio 的情况下使用 SQL Server Express LocalDB 中的 Visual Studio 2013 创建两个表之间的关系?我对此很困惑。可能没有 T-SQL 代码。我想要一个简单的解决方案。

table-relationships localdb visual-studio-2013

5
推荐指数
1
解决办法
3102
查看次数

Laravel 关系 - 在视图中访问相关值

对于将相关数据传递给视图这一看似简单的问题,我找不到解决方案。我有一个属于“地区”的模型“公司”。我belongsTo在我的公司模型中创建了关系

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class Company extends Model
{
protected $table = 'companies';
protected $primaryKey = 'Comp_id';
protected $fillable = ['industrylink_id', 'region_id','companyname','contactno','regno','vatno','salaryroll','numemployees'];

public function employees(){
    return $this->hasMany('App\Models\Employee');
}

public function region(){
    return $this->belongsTo('App\Models\Region');
Run Code Online (Sandbox Code Playgroud)

还有hasManyRegion 模型中的关系:

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class Region extends Model
{
protected $table = 'regions';

public function companies(){
    return $this->hasMany('App\Models\Company');
}    
}
Run Code Online (Sandbox Code Playgroud)

我的show控制器成功地将会话行的变量传递给视图,但是我想使用以下内容访问相关表数据的那一刻......(表'区域'与列'区域')

<p>Region: {{ $company->region->region }}</p> -->
Run Code Online (Sandbox Code Playgroud)

...我得到了错误

“试图获取非对象的属性:(视图:...”

我已经将我的模型位置更改为 app\Models 并且我已经在模型和控制器中进行了所有必要的命名空间更改,以及在 composer.json 中的自动加载。我做了一个 composer dump & config:clear 和所有其他 …

table-relationships laravel

5
推荐指数
1
解决办法
1346
查看次数

在MS Access中导入/导出关系

我有几个具有确切表结构的mdb文件.我必须将主表的主键从autonumber更改为所有这些中的数字,这意味着我必须:

  1. 删除主表所具有的所有关系
  2. 更改主表
  3. 再次创建关系,...对于所有表.

有没有办法从一个文件导出关系并将它们导入到所有其他文件?

我确信这可以通过一些宏/ vb代码来完成.有没有人有我可以使用的例子?

谢谢.

ms-access vba access-vba table-relationships

4
推荐指数
1
解决办法
1万
查看次数

Rails ActiveRecord关系 - 有许多属于关联

我创建了3个模型:

  • 文章:包含一篇文章
  • 标签:包含标签
  • ArticleTag:用于将多对一标签与文章关系相关联.它包含tag_id和article_id.

我遇到的问题是我对主动记录技术还不熟悉,我不明白定义所有内容的正确方法.目前,我认为这是错误的,我有一个

ArticleTag
 belongs_to :article
 belongs_to :tag
Run Code Online (Sandbox Code Playgroud)

现在,从这里开始我的想法就是添加

  Article
   :has_many :tag
Run Code Online (Sandbox Code Playgroud)

我不确定我是否正确接近这一点.谢谢您的帮助!

ruby-on-rails table-relationships models many-to-one

4
推荐指数
2
解决办法
4587
查看次数

Access使用ODBC链接表替换本地表并保留原始名称引用

我试图用ODBC数据源中的链接表替换Access DB中的所有本地表。我可以导入以“ xyz_table”形式出现的新表。我想用“ xyz_table”替换旧的本地“表”。但是,当我删除“表”或重命名“ xyz_table”以替换“表”时,它将删除原始本地“表”的所有关系/对象依赖性。(查询,表格,报告等)

无论如何,有没有保存/应用从原始本地“表”到新的ODBC链接“ xyz_table”的关系/对象依赖关系。我不想手工尝试重新链接所有关系/对象依赖项。

任何帮助将不胜感激。

ms-access odbc replace table-relationships linked-tables

4
推荐指数
1
解决办法
8771
查看次数

来自第3层的Yii2关系数据

有点连接到我以前的问题

我有以下表格/模型: 在此处输入图片说明

我已经设法为actionIndex连接了所有表,但是我现在想为actionView实现相同的东西,但是find()findOne()似乎不一样。联接不适用于findModel($ id)

我没有什么头绪,能否请您指出正确的方向?实际上,我只需要在模型BCD视图中显示模型A的相关数据,就可以肯定有一种简单的方法,但是我什么也找不到,我什至不知道要寻找什么。因为问题是,在正常关系下,我只能伸到表B,所以最多只能有2个等级。我试图创建一种关系,这种关系可以达到第3级,但无法正常工作。谢谢。

relationship table-relationships yii2

4
推荐指数
1
解决办法
1590
查看次数

UPDATE 上的 PgSQL 默认操作 | 删除外键

在 PostgreSQL中,在事件中对使用外键引用父表的子表的默认操作是什么UPDATE / DELETE

列出的可能如下:

NO ACTION | RESTRICT | CASCADE | SET NULL | SET DEFAULT
Run Code Online (Sandbox Code Playgroud)

我想它可能是NO ACTION,但官方文档没有在 SELECT 语句规范事件段落中指定它(不幸的是,该段落的深层链接不可引用)。

postgresql foreign-keys table-relationships

4
推荐指数
1
解决办法
3755
查看次数