标签: foreign-keys

如何插入具有关系的表?

我只做过没有关系的数据库,但现在我需要做一些更严肃和正确的事情。

这是我的数据库设计: 替代文字

  1. 昆德 = 客户
  2. Vare = 产品
  3. 订单 = 订单(阅读:我要下订单)
  4. VareGruppe = ehm..type?(阅读:汽车、椅子、壁橱等)
  5. VareOrdre = Product_Orders

这是我的 SQL (SQLite) 架构:

CREATE TABLE Post (
    Postnr INTEGER NOT NULL PRIMARY KEY,
    Bynavn VARCHAR(50) NOT NULL
);

CREATE TABLE Kunde (
    CPR INTEGER NOT NULL PRIMARY KEY,
    Navn VARCHAR(50) NOT NULL,
    Tlf INTEGER NOT NULL,
    Adresse VARCHAR(50) NOT NULL,
    Postnr INTEGER NOT NULL 
    CONSTRAINT fk_postnr_post REFERENCES Post(Postnr)
);

CREATE TABLE Varegruppe (
    VGnr INTEGER PRIMARY KEY,
    Typenavn VARCHAR(50) NOT …
Run Code Online (Sandbox Code Playgroud)

sql entity-relationship foreign-keys primary-key

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

phpmyadmin 将 myisam 转换为 innodb

嘿,所以我最近意识到为了建立外键关系,我需要将我的表转换为 innodb。我是想这样做在phpMyAdmin和发现“存储引擎(类型)”选项。然而我的选项下拉列表仅限于:MyISAMMEMORY,和MRG_MYISAM

谁能解释一下这是为什么?

apache 2.0 
phpmyadmin 3.3.10 
mysql 5.0.67
php 5.2.2
Run Code Online (Sandbox Code Playgroud)

谢谢!

mysql innodb foreign-keys phpmyadmin

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

相关的查找字段外键在内联 Django 中不起作用

我的 tabularinline 字段有问题。我有这样的模型

class Product(models.Model):
....

class Pemesanan(models.Model):
produks = models.ManyToManyField(Product, verbose_name=u"Kode Produk", through='Foo')

class Foo(models.Model):
product = models.ForeignKey(Product)
...
Run Code Online (Sandbox Code Playgroud)

Foo 类是一个中间类(manytomany 字段),具有 Pemesanan 类和 Product 类。它有一个 Pemesanan 类的外键字段。Foo 类在 change_form 模板中显示为 tabularinline,如下所示http://upload.ui.ac.id/?a=d&i=845380

但我的问题是字段产品没有显示为相关的查找字段,因为它显示为普通表单(不是内联的)。这是我的管理员

class FooInline(admin.TabularInline):
model = Foo
extra = 0
allow_add = True

class PemesananAdmin(admin.ModelAdmin):
....
search_fields = ['produks']
raw_id_fields = ('produks',)
related_lookup_fields = {
'm2m': ['produks'],
}
inlines = [
FooInline,
]
exclude = ('produks',)
Run Code Online (Sandbox Code Playgroud)

我已经使用了自动完成功能,但由于教程不完整,这里似乎很难实现。那么有没有办法让我的相关查找工作在我的 tabularinline 中?非常感谢:D。

django foreign-keys

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

如何设置外键id的id #sf2 #doctrine2

我正在尝试为对象手动设置外键 ID,但没有找到方法

class Item
{
    /**
     * @ORM\ManyToOne(targetEntity="MyBundle\Entity\ItemType", inversedBy="itemTypes")
     * @ORM\JoinColumn(name="type_id", referencedColumnName="id")
     */
    protected $item_type;
}
Run Code Online (Sandbox Code Playgroud)

有没有办法做一些链接?

$item = new Item();
$item->setItemTypeId(1); // This generate an error.
Run Code Online (Sandbox Code Playgroud)

还是我必须这样做?

$item = new Item();
$type = Repository::RetrieveById(1);
$item->setItemType($type); // This generate an error.
Run Code Online (Sandbox Code Playgroud)

php foreign-keys symfony doctrine-orm

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

外键引用同表中的主键

我有一个两列作为主键的表。这两列也是引用同一张表的外键:(这个表是前段时间离职的人创建的)

CREATE TABLE [dbo].[tblItemLink](
    [ItemListID] [int] NOT NULL,
    [ItemID] [int] NOT NULL,
 CONSTRAINT [PK_tblItemList] PRIMARY KEY CLUSTERED 
(
    [ItemListID] ASC,
    [ItemID] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]

GO
ALTER TABLE [dbo].[tblItemLink]  WITH CHECK ADD  CONSTRAINT [FK_tblItemLink_tblItemLink] FOREIGN KEY([ItemListID], [ItemID])
REFERENCES [dbo].[tblItemLink] ([ItemListID], [ItemID])
GO

ALTER TABLE [dbo].[tblItemLink] CHECK CONSTRAINT [FK_tblItemLink_tblItemLink]
GO
Run Code Online (Sandbox Code Playgroud)

实际上,ItemID 指的是 tblItem.ItemID,而 ItemListID 在 DB 中的其他任何地方都找不到,但在应用程序中有相应的 enum。

主键是否有任何理由也是引用自身的外键(即一些未记录的性能改进),或者这只是一个错误?

sql foreign-keys sql-server-2008

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

在 JPA 中,将多对一作为主键会引发参照完整性约束违规

我定义了以下实体:

@Entity
public class Child implements Serializable
{

   @Id
   @ManyToOne(cascade = CascadeType.ALL)
   public Parent parent;

   @Id
   public int id;
}

@Entity
public class Parent
{
   @Id
   public int id;
}
Run Code Online (Sandbox Code Playgroud)

当我尝试使用以下代码持久化 Child 时:

Parent p = new Parent();
p.id = 1;

Child c1 = new Child();
c1.id = 1;
c1.parent = p;

em.persist(c1);
Run Code Online (Sandbox Code Playgroud)

Hibernate 抛出“违反参照完整性约束”错误:

Caused by: org.h2.jdbc.JdbcSQLException: Referential integrity constraint violation: "FK3E104FC802AAC0A: PUBLIC.CHILD FOREIGN KEY(PARENT_ID) REFERENCES PUBLIC.PARENT(ID) (1)"; SQL statement:
insert into Child (parent_id, id) values (?, ?) [23506-171] …
Run Code Online (Sandbox Code Playgroud)

jpa foreign-keys primary-key many-to-one jpa-2.0

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

在两个表的非常简单的情况下,MySQL 5.6.16 中的“无法添加外键约束”错误:为什么?

这是我尝试执行的确切 SQL(在 Windows 上使用 SQLYog 作为 MySQL 客户端):

DROP TABLE IF EXISTS `test`;
CREATE TABLE `test` (
  `id` INT (11) NOT NULL AUTO_INCREMENT,
  PRIMARY KEY (`id`)
) ENGINE = INNODB ;

DROP TABLE IF EXISTS `temp`;
CREATE TEMPORARY TABLE `temp` (
  dish_id INT (11) NOT NULL,
  user_id INT (11) NOT NULL,
  UNIQUE KEY (dish_id, user_id),
  FOREIGN KEY `test` (dish_id) REFERENCES test (id)
) ENGINE = INNODB ;
Run Code Online (Sandbox Code Playgroud)

这是尝试创建时收到的确切错误temp

Error Code: 1215
Cannot add foreign key constraint
Run Code Online (Sandbox Code Playgroud)

在我看来,一切都井井有条——两个相关密钥的数据类型和签名是相同的;这些名字似乎是犹太洁食;到底是怎么回事?

我究竟做错了什么?为什么无法创建外键约束?

mysql sql windows foreign-keys

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

Django - 模型 - 如何描述两个模型之间的特定双向关系?

我有两个模型:PersonDepartment。每个人可以在一个部门工作。部门可以由很多人管理。我不确定如何在 Django 模型中构建这种关系。

这是我失败的尝试之一 [models.py]:

class Person(models.Model):
     department = models.ForeignKey(Department)
     firstname = models.TextField(db_column='first_name')
     lastname = models.TextField(db_column='last_name')
     email = models.TextField(blank=True)

class Department(models.Model):
    administration = models.ManyToManyField(Person)
    name = models.TextField()
Run Code Online (Sandbox Code Playgroud)

我知道该代码不起作用,因为在定义部门之前,该类在其 ForeignKey 关系中Person引用了Department该类。同样,如果我将 Department 定义移到 Person 定义之前,则Department该类将Person在定义 Person 之前在其多对多关系中引用该类。

在 Django 中建模这种特定关系的正确方法是什么?如果您能提供示例(我是新手),我将不胜感激。

django foreign-keys django-models

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

PostgreSQL - 执行 SELECT 时检查外键是否存在

假设我有以下数据:

some_table

some_table_id | value | other_table_id
--------------------------------------
1             | foo   | 1
2             | bar   | 2
Run Code Online (Sandbox Code Playgroud)

other_table

other_table_id | value
----------------------
1              | foo
2              | bar
Run Code Online (Sandbox Code Playgroud)

在这里,some_table有一个外键列other_table_idother_table某个名称的列进入。

在 PostgreSQL 中使用以下查询:

SELECT * 
FROM some_table 
WHERE other_table_id = 3;
Run Code Online (Sandbox Code Playgroud)

如您所见,3不存在于other_table此查询显然将返回 0 个结果。

在不进行第二次查询的情况下,有没有办法知道我用作过滤器的外键是否有效地不存在于other_table?

理想情况下,作为稍后可以解析的错误(例如,在使用错误的外键执行 anINSERT或 anUPDATE时会发生这种情况)。

sql postgresql foreign-keys

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

django反向查找外键不起作用

我想获取一个特定的Video对象,然后Rating使用 ForeignKey 反向查找找到与其关联的所有对象,如文档中所述。

我有模型:

class Video(models.Model):
 ...
    rating_int = models.IntegerField(default=1, choices=CHOICES, name='rating_int')
    def __str__(self):
        return self.title


class Rating(models.Model):
    video = models.ForeignKey('Video', related_name='video', null=True)
Run Code Online (Sandbox Code Playgroud)

和意见:

def video_ratings(request):
    vid_rate = Video.objects.get(pk=1)
    ratings_of_video = vid_rate.rating_set.all()
    context = {
        'vid_rate': vid_rate, 'ratings_video': ratings_of_video
    }
    return HttpResponse(template.render(context, request))
Run Code Online (Sandbox Code Playgroud)

当我尝试运行此程序时出现错误 'Video' object has no attribute 'rating_set'

但是当我阅读 django 文档时,它告诉我当你进行反向查找时你需要使用这个_set.all()命令。我不确定这里缺少什么。

python django foreign-keys

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