为模型中的外键字段设置默认值的最佳方法是什么?假设我有两个模型,学生和考试,学生将考试作为外键.我如何理想地为它设置默认值?这是我的努力记录
class Student(models.Model):
....
.....
exam_taken = models.ForeignKey("Exam", default=1)
Run Code Online (Sandbox Code Playgroud)
工作,但有一个预感有一个更好的方法.
def get_exam():
return Exam.objects.get(id=1)
class Student(models.Model):
....
.....
exam_taken = models.ForeignKey("Exam", default=get_exam)
Run Code Online (Sandbox Code Playgroud)
从这里开始,但在同步时失败并且表不存在错误.
任何帮助,将不胜感激.
在数据库设计中,n:m和1:n是什么意思?
它与键或关系有什么关系吗?
我需要对SQL Server 2008数据库进行一些更改.
这需要创建一个新表,并在新表中插入一个引用已存在表的主键的外键.所以我想在我的新tblTwo之间建立一个关系,它引用了tblOne的主键.
但是,当我尝试这样做(通过SQL Server Management Studio)时,我收到以下错误:
表'tblOne'中的列与现有主键或UNIQUE约束不匹配
我不确定这意味着什么,我想知道它是否有任何解决方法?
我的应用程序中有以下"评论"表:
comments
--------
id INT
foreign_id INT
model TEXT
comment_text TEXT
...
Run Code Online (Sandbox Code Playgroud)
这个表的想法是存储我的应用程序的各个部分的注释 - 它可以存储博客帖子的评论,即:
1|34|blogpost|lorem ipsum...
Run Code Online (Sandbox Code Playgroud)
用户图片:
2|12|picture|lorem ipsum...
Run Code Online (Sandbox Code Playgroud)
等等.
现在,有没有办法强制FOREIGN KEY约束这些数据?
即在评论表中这样的东西:
FOREIGN KEY (`foreign_id`) REFERENCES blogposts (`id`)
//but only when model='blogpost'
Run Code Online (Sandbox Code Playgroud) mysql sql database-design foreign-keys polymorphic-associations
我只是认为答案是错误的,因为外键没有uniqueness属性.
但是有些人说它可以在自我加入桌子的情况下.我是新来的SQL.如果是真的请解释如何以及为什么?
Employee table
| e_id | e_name | e_sala | d_id |
|---- |------- |----- |--------|
| 1 | Tom | 50K | A |
| 2 | Billy | 15K | A |
| 3 | Bucky | 15K | B |
department table
| d_id | d_name |
|---- |------- |
| A | XXX |
| B | YYY |
Run Code Online (Sandbox Code Playgroud)
现在,d_id是外键,所以它如何成为主键.并解释一下join.有什么用?
我在创建mysql数据库中现有表的外键时遇到了一些问题.
我有桌子exp:
+-------------+------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------------+------------------+------+-----+---------+-------+
| EID | varchar(45) | NO | PRI | NULL | |
| Comment | text | YES | | NULL | |
| Initials | varchar(255) | NO | | NULL | |
| ExpDate | date | NO | | NULL | |
| InsertDate | date | NO | | NULL | |
| inserted_by | int(11) unsigned …Run Code Online (Sandbox Code Playgroud) MySQL RESTRICT和FK之间有什么区别NO ACTION?从文档中他们看起来完全一样.是这样的吗?如果是这样,为什么两者都有?
我正在尝试为我的应用程序创建一个数据库,有一件事我想找到最好的方法是创建我Users和Items表之间的一对多关系.
我知道我可以做一个第三个表,ReviewedItems和具有列是一个UserID和一个ItemID,但我想知道是否有可能使一列Users,让我们说reviewedItems,这是一个包含外键的整数数组Items是该User审查.
如果PostgreSQL可以这样做,请告诉我!如果没有,我会走下我的第三张桌子路线.
我在Post类中有一个带有:foreign_key of post_id的Comment类.
class Comment < ActiveRecord::Base
belongs_to :post, :class_name => "Post", :foreign_key => "post_id", :counter_cache => true
belongs_to :author, :class_name => "User", :foreign_key => "author_id"
end
Run Code Online (Sandbox Code Playgroud)
但是我的CreateComments迁移没有定义数据库级外键:
class CreateComments < ActiveRecord::Migration
def self.up
create_table :comments do |t|
t.column "post_id", :integer, :default => 0, :null => false
t.column "author", :string, :default => "", :limit => 25, :null => false
t.column "author_email", :string, :default => "", :limit => 50, :null => false
t.column "content", :text, :null => false
t.column "status", :string, …Run Code Online (Sandbox Code Playgroud) 我正在使用PostgreSQL,我试图将表中具有特定列的所有表列为外键/引用.可以这样做吗?我确定这些信息存储在某个地方,information_schema但我不知道如何开始查询它.
foreign-keys ×10
mysql ×4
sql ×4
database ×2
postgresql ×2
cascade ×1
default ×1
django ×1
indexing ×1
primary-key ×1
relationship ×1
sql-server ×1