标签: foreign-keys

无法设置Hibernate中的Generic Generator参数

我想将外部策略生成器用于我班级中的一个关键属性.最简单的方法如下所示:http: //blog.eyallupu.com/2011/01/hibernatejpa-identity-generators.htmlhttp://www.coderanch.com/t/219256/ORM/databases/HBM-Annotation -Foreign-Generatorhttp://www.mkyong.com/hibernate/hibernate-one-to-one-relationship-example-annotation/

import java.util.Date;
import java.util.HashSet;
import java.util.Set;

import javax.persistence.*;
import org.hibernate.annotations.GenericGenerator;
...
...
...
@GenericGenerator(
        name = "myForeignGenerator",
        strategy = "foreign",
        parameters = @Parameter(name = "property", value = "osoba"))
@Id
@GeneratedValue(generator = "myForeignGenerator")
@Column(name = "IdPracownik", unique = true, nullable = false)
public int getIdPracownik() {
    return this.idPracownik;
}
Run Code Online (Sandbox Code Playgroud)

和Eclipse显示错误:

"类型不匹配:无法从参数转换为注释",下划线"@Parameter"注释.

这是为什么?

annotations hibernate foreign-keys one-to-one

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

#1215 - 无法添加外键约束

我有这个奇怪的问题,创建外键.

给出2个表格:

CREATE TABLE IF NOT EXISTS `groupdeals` (
  `groupdeals_id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `product_id` int(10) NOT NULL,
  `merchant_id` int(11) NOT NULL,
  `minimum_qty` int(11) NOT NULL,
  `maximum_qty` int(11) NOT NULL,
  `target_met_email` int(11) NOT NULL,
  `coupon_barcode` text NOT NULL,
  `coupon_merchant_address` int(11) NOT NULL,
  `coupon_merchant_contact` int(11) NOT NULL,
  `coupon_expiration_date` date DEFAULT NULL,
  `coupon_price` int(11) NOT NULL,
  `coupon_fine_print` int(11) NOT NULL,
  `coupon_highlights` int(11) NOT NULL,
  `coupon_merchant_description` int(11) NOT NULL,
  `coupon_business_hours` int(11) NOT NULL,
  `coupon_merchant_logo` int(11) NOT NULL,
  `coupon_additional_info` text NOT NULL,
  `position` …
Run Code Online (Sandbox Code Playgroud)

mysql foreign-keys mysql-5.6

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

使用外键和复合主键创建表

问题陈述:-

以下是我的表格 -

Employee (EmployeeId, EmployeeName, EmployeeCountry)
Training   (TrainingCode, TrainingName, TrainingType, TrainingTeacher)
Outcome  (EmployeeId, TrainingCode, Grade)
Run Code Online (Sandbox Code Playgroud)

TrainingType字段指定训练类型,例如CASSANDRA,SQL

以下是我为上述用例创建的表格.我不知道如何创建第三个表 - 结果?并EmployeeId, TrainingCode聚集在这里是一个主键?

CREATE TABLE employee
(
EmployeeId int,
EmployeeName varchar(255),
EmployeeCountry varchar(255),
PRIMARY KEY (EmployeeId)
);


CREATE TABLE Training
(
TrainingCode int,
TrainingName varchar(255),
TrainingType varchar(255),
TrainingTeacher varchar(255),
PRIMARY KEY (TrainingCode)
);
Run Code Online (Sandbox Code Playgroud)

sql foreign-keys primary-key

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

Django - 什么方法可以立即获取外键对象?

我对Django中的外键行为有疑问.

我在模型中定义了一个树层次结构,其中父子关系在子模型中表示为外键.现在,从叶级开始,我想检索父级,父级的父级等作为我定义的对象.

这可以通过简单地调用Leaf.objects.all()并通常从Python代码访问对象来实现.

但是这里遇到了麻烦.对于每个这样的调用,Django对适当的外部ID进行SELECT查询.这显然非常缓慢且效率低下.我想告诉Django类似"嘿,只需一次取出包括外键在内的所有数据,只需在数据库端进行连接和所有操作".这有点可行吗?

python database django foreign-keys

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

用于选择具有多个指向主键表的链接的外键行的SQL查询

我有一个(简化的)场景,如下所示:

文件表:

   id   |    title   |  text
   ===========================
    1   |    Title1  |  "AAA"
    2   |    Title2  |  "BBB" 
    3   |    Title3  |  "CCC"
Run Code Online (Sandbox Code Playgroud)

记录图片

   id   |   doc_id    |  url
   ===================================================
    1   |    1       |  "http://some.domain.com/1.jpg"
    2   |    1       |  "http://some.domain.com/2.jpg"
    3   |    2       |  "http://some.domain.com/3.jpg"
    4   |    4       |  "http://some.domain.com/3.jpg"
Run Code Online (Sandbox Code Playgroud)

让我们来命名这些表documentsdoc_pictures.我正在尝试创建一个查询,该查询将返回包含多个图片的所有文档.在此示例中,这意味着仅返回具有id的文档1.

限制和假设:

  1. 这两个表都很庞大,因此复杂的查询可能需要很长时间.
  2. 我不关心文档有多少外国图片行.我只关心它超过1.
  3. 我不介意输出是文档的id还是图片表中的行.
  4. 我不介意只获得这些文档的一小部分(例如10个文档有超过1张图片,而不是所有文档都有超过1张图片)

db是Mysql

mysql sql foreign-keys

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

无法添加外键约束

当我尝试创建一个名为Sales的表时,MySQL会出现以下错误.我不知道问题是什么,我瞥了一眼http://dev.mysql.com/doc/refman/4.1/en/innodb-foreign-key-constraints.html,看看我犯了什么错,但是我说不出来.我在MySQL 5.6.11中遇到此错误,但在5.1.67中没有

Error
SQL query:

CREATE TABLE IF NOT EXISTS Sales(

name VARCHAR( 30 ) NOT NULL ,
address VARCHAR( 70 ) NOT NULL ,
serialsold VARCHAR( 20 ) UNIQUE NOT NULL ,
background_check VARCHAR( 9 ) NOT NULL ,
soldfor FLOAT NOT NULL ,
datesold TIMESTAMP DEFAULTNOW( ) ,
FOREIGN KEY ( serialsold ) REFERENCES Guns( serialnumber ) ON DELETE SET NULL ON UPDATE CASCADE ,
PRIMARY KEY ( background_check )
);

MySQL said: Documentation

#1215 - …
Run Code Online (Sandbox Code Playgroud)

mysql sql foreign-keys create-table

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

SQL Server:使用多列外键创建表

我必须在SQL Server中创建一组表.

那些是:

  • chips,用于识别要植入动物的芯片
  • signals,因为每个芯片每小时产生一次信号
  • signal receivers,如果芯片在半径范围内,可以接收信号的电台
  • signal receivings,对于接收器已接收的信号

我在创建这些表时遇到问题.

这是我的代码:

CREATE TABLE CHIPS (
    ID INT PRIMARY KEY,
    ...(not related attributes)...
    );

CREATE TABLE RECEIVERS (
    ID_receiver INT PRIMARY KEY,
    ...(some other attributes, not related to the problem)...
    );

CREATE TABLE SIGNALS (
    ID_chip INT FOREIGN KEY REFERENCES CHIPS, 
    Signal_no INT, 
    Date DATETIME, 
    PRIMARY KEY (ID_chip, Signal_no)
    );

CREATE TABLE SIGNAL_RECEIVINGS (
    ID_receiver INT REFERENCES RECEIVERS ,
    Id_chip INT REFERENCES SIGNALS(ID_chip), 
    Signal_no INT REFERENCES SIGNALS(Signal_no), …
Run Code Online (Sandbox Code Playgroud)

sql sql-server foreign-keys create-table multiple-columns

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

添加外键时,"REFERENCES"附近出现错误#1064

我在尝试创建外键时不断收到错误1064:

ALTER TABLE `zajimavost`
    ADD CONSTRAINT FK_zaj_bod 
    FOREIGN KEY def_bod
      REFERENCES `bod`(`gid`)
      ON UPDATE CASCADE ON DELETE CASCADE;
Run Code Online (Sandbox Code Playgroud)

它抱怨说:

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'REFERENCES `bod`(`gid`)
      ON UPDATE CASCADE ON DELETE CASCADE' at line 4
Run Code Online (Sandbox Code Playgroud)

无论有没有反引号我试过它,问题总是一样的.

我的桌子:

CREATE TABLE `zajimavost` (
 `zaj_id` int(11) NOT NULL,
 `lok_id` int(11) NOT NULL,
 `nazev` varchar(255) COLLATE utf8_czech_ci NOT NULL,
 `kategorie` int(11) NOT …
Run Code Online (Sandbox Code Playgroud)

mysql foreign-keys alter-table

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

正确设计EAV数据库以获取历史数据

介绍

我一直在阅读有关EAV数据库的信息,大多数缺点似乎都与真的,真的,错误的EAV设计或从数据生成报告的难度有关

通常,当您看到人们抱怨EAV时,他们使用少于三个的表来尝试复制RDBMS中单独的表+列的功能。有时,这意味着将所有内容(从小数到字符串)都存储在单个TEXT值列中。EAV还会破坏数据完整性的安全保护措施,如果您不小心的话,这可能会很糟糕。

但是,EAV确实提供了一种轻松的方式来跟踪历史数据,并允许我们在SQL和键值存储系统之间来回移动系统的某些部分。

如果我们根据类型区分不同的实体属性该怎么办。除了与特定属性和实体相关的正确索引值之外,这还使我们仍然可以处理belongsTo,Has,HasMany和HasManyThrough关系。

考虑以下两个基本实体

products (price -> decimal, title -> string, desc -> text, etc...)
    attributes
        options
            [...]
        int
        datetime
        string
        text
        decimal
        relation
            [id,foreign_key]

users (gender -> options, age -> int, username -> string, etc...)
    attributes
        options
            [...]
        int
        datetime
        string
        text
        decimal
        relation
            [id,foreign_key]
Run Code Online (Sandbox Code Playgroud)

RDBMS架构设计

众所周知,用户资料和产品是世界上最多样化的产品。每个公司处理它们的方式都不一样,并且针对他们的需求具有不同的“列”或“属性”。

以下是如何处理多个(嵌套和/或关系)实体的视图。

想法是,对于每个实体都有此主属性表,然后该主表指定如何查找和解释这些值。这使我们能够处理特殊情况,例如指向其他实体的外键以及诸如“选项”或十进制数字之类的东西。

entity_type {id,type,//即“博客”,“用户”,“产品”等。created_at}

entity {
    id,
    entity_type_id, 
    created_at
}

    attr {
        id,
        entity_id,
        type,
        name,
        created_at
    }

        option {
            id,
            attr_id, …
Run Code Online (Sandbox Code Playgroud)

sql foreign-keys key-value entity-attribute-value 6nf

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

Django从外键的类中获取属性

我想展示另一个类的一个属性.当前类有一个外键到我要获取属性的类.

# models.py
class Course(models.Model):
    name = models.CharField(max_length=100)
    degree = models.CharField(max_length=15)
    university = models.ForeignKey(University)

    def __unicode__(self):
        return self.name

class Module(models.Model):
    code = models.CharField(max_length=10)
    course = models.ForeignKey(Course)

    def __unicode__(self):
        return self.code

    def getdegree(self):
        return Course.objects.filter(degree=self)

# admin.py.
class ModuleAdmin(admin.ModelAdmin):
    list_display = ('code','course','getdegree')
    search_fields = ['name','code']
    admin.site.register(Module,ModuleAdmin)
Run Code Online (Sandbox Code Playgroud)

所以我要做的是获得模块使用"getdegree"的"程度".我在这里阅读了几个主题,并尝试了django文档,但我不是一个有经验的用户,所以即使我猜它是简单的,我无法弄清楚.谢谢!

python django model foreign-keys

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