标签: foreign-key-relationship

SQL - 两个相互依赖的外键

目前的结构如下:

Table RowType:    RowTypeID

Table RowSubType: RowSubTypeID
                  FK_RowTypeID

Table ColumnDef:  FK_RowTypeID
                  FK_RowSubTypeID (nullable)
Run Code Online (Sandbox Code Playgroud)

简而言之,我将列定义映射到行。在某些情况下,这些行具有子类型,子类型将具有特定于它们的列定义。或者,我可以将那些特定于子类型的列定义挂出它们自己的表,或者我可以将 RowType 和 RowSubType 中的数据组合到一个表中并使用单个 ID,但我不确定这是否是更好的解决方案(如果有的话,我倾向于后者,因为我们最终大多会为给定的 RowType/RowSubType 拉取 ColumnDefs。

现在的设计是对SQL的亵渎吗?

如果保留当前结构,如果在 ColumnDef 中指定了 RowSubTypeID,如何保持它必须与 RowTypeID 指定的 RowType 相对应?我应该尝试用触发器强制执行此操作,还是我错过了可以解决问题的简单重新设计?

sql sql-server foreign-keys foreign-key-relationship sql-server-2008

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

外键中的Django模型计数

我有两个模型。

class Person(models.Model):
    first_name = models.CharField(max_length=50)
    last_name = models.CharField(max_length=50)

class Position(models.Model):
    person = models.ForeignKey(Person)
    description = models.CharField(max_length=50)
Run Code Online (Sandbox Code Playgroud)

有没有办法可以计算出这种 Person 模型中有多少个职位?像 Person.position.count.. 这样的。请帮我。这仅在模型内部计算。请。

python django foreign-key-relationship

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

如何在数据库列中存储多个项目?

在我的项目中,员工插入一个表号,选择客户订购的所有项目并将其保存到数据库中。我有三张表:

Employee(empId, firstname, lastname)
Orders(orderId,tableNum,empIDFK,itemIDFK,totalPrice) 
Item(itemId,itemName, itemPrice)
Run Code Online (Sandbox Code Playgroud)

我的问题是,如果员工在订单中放入多个项目,则只保存 itemIDFK 列中的最后一个项目。如何获取员工输入的所有项目的 ID?

在此处输入图片说明

这是一些示例代码,大多数按钮的代码都与此类似:

 private void chickenbuttonActionPerformed(java.awt.event.ActionEvent evt) {                                              
    // TODO add your handling code here:
     try{
     st = connection.createStatement();   
    String query;
    query = "SELECT itemName, itemPrice FROM item WHERE itemID = '14446'";
    String itemName = " ",itemPrice =" ";  

      ResultSet rs = st.executeQuery(query);

       if(rs != null){
        while(rs.next())
        { 
         itemName = rs.getString(1);
         itemPrice = rs.getString(2);
        }
     model.addRow(new Object[]{itemName, itemPrice});
      total+= Double.parseDouble(itemPrice);
       String format = formatter.format(total);
       totalField.setText(format);
       }

       //inserts corresponding item id in …
Run Code Online (Sandbox Code Playgroud)

java mysql sql foreign-key-relationship

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

带有外键列表的 SQLite 字段

我正在构建一个 SQLite 数据库来保存我的房地产经纪人的列表。我已经能够使用外键来识别每个代理的列表,但我想在每个代理的记录中创建一个列表;从代理商和列表之间的一对一关系转变为一对多关系。

看这里: http: //www.sqlite.org/draft/foreignkeys.html,没有提到“外键列表”字段。我正在尝试的可行吗?

我认为,作为一种解决方法,我可能会制作一个包含关系本身的表,但这似乎不是一个非常干净的解决方案。我查看了这个线程:SQLite 外键示例,但我不确定我的元素是否与他们在那里描述的多对多关系相似。

我也愿意接受有关如何做得更好的建议。我是否应该在实际列表中包含列表代理的名称,然后从那里进行查询?

CREATE TABLE listings
(
    listing_id        INTEGER PRIMARY KEY AUTOINCREMENT,
    listing_address   TEXT UNIQUE NOT NULL,
    acq_date          DATE
 )

CREATE TABLE agent
(
     agent_id         INTEGER PRIMARY KEY AUTOINCREMENT,
     agent_name       TEXT NOT NULL,
     agent_listings   INTEGER,
     FOREIGN KEY (agent_listings) REFERENCES listings (listing_id) NOT NULL
 )
Run Code Online (Sandbox Code Playgroud)

sql sqlite foreign-keys foreign-key-relationship one-to-many

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

mysql中On Delete Cascade和On Update Cascade之间的区别

我在MySQL数据库中有两个表 - parent, child. 我正在尝试根据父表向我的子表添加外键引用.有没有之间的任何显著差异ON UPDATE CASCADEON DELETE RESTRICT

我的父表

CREATE TABLE parent (
    id INT NOT NULL,
    PRIMARY KEY (id)
) ENGINE=INNODB;
Run Code Online (Sandbox Code Playgroud)

我的问题是:以下sql查询之间有什么区别.

1)

CREATE TABLE child (
    id INT, 
    parent_id INT,
    INDEX par_ind (parent_id),
    FOREIGN KEY (parent_id) 
        REFERENCES parent(id)
        ON DELETE CASCADE
) ENGINE=INNODB;
Run Code Online (Sandbox Code Playgroud)

2)

CREATE TABLE child (
    id INT, 
    parent_id INT,
    INDEX par_ind (parent_id),
    FOREIGN KEY (parent_id) 
        REFERENCES parent(id)
        ON UPDATE CASCADE
) ENGINE=INNODB;
Run Code Online (Sandbox Code Playgroud)

以下查询中是否有任何错误?

3)

 CREATE TABLE child (
        id …
Run Code Online (Sandbox Code Playgroud)

mysql database foreign-keys phpmyadmin foreign-key-relationship

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

django 模型的假反向关系

我有以下代码:

class Transaction(models.Model):
    pass

class Shipment(models.Model):
    tx = models.ForeignKey(Transaction)
    sub = models.ForeignKey(Subscription)


class Subscription(models.Model):
    pass
Run Code Online (Sandbox Code Playgroud)

我正在尝试在订阅和交易之间建立反向关系,如下所示:

subscription.transaction_set.all()
Run Code Online (Sandbox Code Playgroud)

我能想出的唯一方法是使用这样的假属性:

class Subscription(models.Model):

    @property
    def transaction_set(self):
        return Transaction.objects.filter(
            pk__in=[s.tx.pk for s in self.shipment_set.all()]
        )
Run Code Online (Sandbox Code Playgroud)

但是现在我遇到了管理问题。我想在管理站点中使用 admin.TabularInline 列出交易。这是我的解决方案崩溃的地方。有谁有想法吗?

我还需要使用 admin.TabularInline 列出货件。

django orm reverse foreign-key-relationship

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

Oracle SQL Sata Modeler 中的弧关系 (XOR)?

我需要在 Oracle SQL Developer Data Modeler 中对数据库进行建模。

我必须创建 ARC 关系 (XOR),但我不知道如何创建。我在外键属性中找到了“In Arc”复选框,但它已禁用(灰色)。我没有看到任何其他与 Arc 有关的选项。

oracle xor foreign-key-relationship relationship oracle-sql-data-modeler

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

如何在外键约束中使用两列

我有两张桌子:

  1. Article
  2. Subscription

Article表中,我有两列构成主键:id, sl。在Subscription表中我有一个外键“idsl”。

我使用这个约束:

constraint FK_idsl 
  foreign key (idsl) references CSS_SubscriptionGroup(id, sl)
Run Code Online (Sandbox Code Playgroud)

但是当我运行查询时,我收到此错误:

外键中引用列的数量与表 X 中引用列的数量不同

sql sql-server foreign-key-relationship

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

来自另一个模型的 Django 外键引用

我有以下型号:

class Author(models.Model):
   name = models.CharField(max_length=255, unique=True)
   """books = Attribute which allows an access to books from this author"""
   class Meta:
      ordering = ['name']


class Book(models.Model):
   name = models.CharField(max_length=255, unique=True)
   author = models.ForeignKey(Author, on_delete=models.CASCADE)
   class Meta:
      ordering = ['name']
Run Code Online (Sandbox Code Playgroud)

如何为 Author 设置一个属性,以便我可以访问其书籍?

django foreign-key-relationship

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

Django中的多对一关系查询

有人可以告诉我,我如何访问与特定群组相关的所有联系人?我是Django的新手并且这样做了(根据文档):

def view_group(request, group_id):
    groups = Group.objects.all()
    group = Group.objects.get(pk=group_id)
    contacts = group.contacts.all()
    return render_to_response('manage/view_group.html', { 'groups' : groups, 'group' : group, 'contacts' : contacts })
Run Code Online (Sandbox Code Playgroud)

"群体"用于不同的东西,我用"群组"和"联系人"尝试了但是得到了一个

'Group' object has no attribute 'contacts'
Run Code Online (Sandbox Code Playgroud)

例外.

这是我正在使用的模型

from django.db import models

# Create your models here.

class Group(models.Model):
    name = models.CharField(max_length=255)
    def __unicode__(self):
            return self.name

class Contact(models.Model):
    group = models.ForeignKey(Group)
    forname = models.CharField(max_length=255)
    surname = models.CharField(max_length=255)
    company = models.CharField(max_length=255)
    address = models.CharField(max_length=255)
    zip = models.CharField(max_length=255)
    city = models.CharField(max_length=255)
    tel = models.CharField(max_length=255)
    fax …
Run Code Online (Sandbox Code Playgroud)

python django orm exception foreign-key-relationship

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