CREATE DATABASE employeeDB;
USE employeeDB;
CREATE TABLE employees(
employeeid NUMERIC(9),
firstname VARCHAR(10),
lastname VARCHAR(20),
deptCode CHAR(5),
salary NUMERIC(9, 2),
PRIMARY KEY (employeeid)
);
CREATE TABLE projects(
projectid CHAR(8),
deptcode CHAR(5),
description VARCHAR(200),
startdate DATE,
stopdate DATE,
revenue NUMERIC(12, 2),
PRIMARY KEY (projectid),
FOREIGN KEY (deptcode) REFERENCES employees(deptCode)
);
CREATE TABLE departments(
code CHAR(5),
name VARCHAR(5),
managerid NUMERIC(9),
subdeptof CHAR(5),
PRIMARY KEY (code),
FOREIGN KEY (managerid) REFERENCES employees(employeeid),
FOREIGN KEY (subdeptof) REFERENCES projects(deptcode)
);
ALTER TABLE employees ADD FOREIGN KEY (deptCode) …Run Code Online (Sandbox Code Playgroud) SQLite附带了一个实用程序genfkey,它将生成触发器以强制执行外键约束.这是来源.还有一个README,只需将之前的url更改为f = sqlite/tool/genfkey.README(stackoverflow只允许我发布一个url)
每个FK生成两对触发器:引用表上的BEFORE INSERT和BEFORE UPDATE,以及引用表上的BEFORE DELETE和AFTER UPDATE.我无法弄清楚为什么最后的触发器是AFTER而不是像其他触发器一样.请参阅源代码中的第741行,或者只搜索"AFTER",它是文件中唯一的实例.
它不是一个大问题 - 如果你在一个事务中,并且AFTER触发器产生错误,你仍然可以回滚.我只是想知道是否有人有任何想法为什么它不同.
如何在EF 4.0 FluentAPI CTP5中映射0..1到*关系?我一直在犯这个错误
由于"从属角色"中的所有属性都是不可为空的,因此"主体角色"的多重性必须为"1".
我不知道如何解决它..
我的代码看起来像这样
public class Child{
public int pID { get; set; }
public Parent Parent_Object{ get; set; }
public int Parent{ get; set; }
public Child() {
}
}
public class Parent {
public int pID { get; set; }
public List<Child> Children { get; set; }
public Parent () {
}
}
Run Code Online (Sandbox Code Playgroud)
对于映射,代码看起来像这样
modelBuilder.Entity<Child>().HasKey(c=> c.pID);
modelBuilder.Entity<Parent>().HasKey(c=> c.pID);
modelBuilder.Entity<Child>().HasOptional(c=> c.Parent_Object)
.WithMany(p => p.Children)
.HasForeignKey(p => p.Parent);
Run Code Online (Sandbox Code Playgroud)
也有可能只有
public Parent Parent{ get; set; }
Run Code Online (Sandbox Code Playgroud)
代替
public …Run Code Online (Sandbox Code Playgroud) 我正在开发我的第一个真正的rails项目,我正在寻找一些专业建议.
我期待在MySQL数据库中有四个表(用户,书籍,评论,标签),并适用以下业务规则.
用户可以为一本书制作一个或多个评论,但评论只能属于一本书.用户可以针对书籍放置一个或多个标签,但标签只能属于一本书.
从图形上看,我提到了以下内容:( ascii art永远不会死)
+---------+ +---------+
| | | |
| | | |
| User |1 1| Book |
| |----- -----| |
+---------+ | | +---------+
| 1 | | | 1
| | | |
| | | |
| 1,* | | | 1,*
+---------+ | | 1,*+---------+
| | ---+----| |
| |1,* | | |
| Comment |--------- | Tag |
| | | |
+---------+ +---------+
Run Code Online (Sandbox Code Playgroud)
我正在寻找有关如何在Rails中配置我的模型的任何建议.目前我正在设置:
class Users
has_many :tags …Run Code Online (Sandbox Code Playgroud) 我有两个应用程序 - 一个用于狗,一个用于垃圾 - 理想情况下我会将外键互相支持,如下所示:
在dogs.py中:
from litters.py import Litter
class Dog(models.Model):
name = models.CharField(max_length=55)
Litter = models.ForeignKey(Litter, blank=True)
Run Code Online (Sandbox Code Playgroud)
在litters.py中
from dogs.py import Dog
class Litter(models.Model):
name = models.CharField(max_length=55)
sire = models.ForeignKey(Dog, related_name='dog_sire_set')
dam = models.ForeignKey(Dog, related_name='dog_dam_set'
Run Code Online (Sandbox Code Playgroud)
在创造一个新的垃圾时,我希望垃圾的大坝和父亲(妈妈和爸爸)来自我的狗桌,因此两个FK's to dam and sire.所以在我创造一个垃圾之前,我必须至少有两个狗条目.
后来,在描述新的狗入境时,我想知道狗的窝是否已知,而且那窝应该来自我的垃圾桌.不应该要求狗有一窝,但如果该场不是空的,那么我想知道它.
上面的代码不起作用,但它演示了我想要实现的目标.我很感激有关如何解决这个问题的任何提示.谢谢.
我试图弄清楚如何构建这个数据库.我之前使用过Apple的核心数据就好了,我现在正在开发一个需要MySQL的不同项目.我是MySQL的新手,所以请放轻松我.:)
在这个例子中,假设我有三个表,User,Device,和Location.把它画出来,一个Location可以有很多Device,但Device只能有一个Location; 每个User都有它的主键,UserID我需要使用它来获取正确的信息.
那么如何在这里建立这样的关系呢?我听说过创建索引和外键,我不确定它们是如何工作的.
最后,我需要做的是能够访问User特定的表并查看Locations与之相关的所有内容User.我还需要能够Device肯定地添加Location一个特定的User.
再次,请原谅我,因为我正试图绕过MySQL.我正在使用HeidiSQL进行数据库编辑.
在我的数据库中,我有两个表,制造商和塑料:
CREATE TABLE `manufacturer` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(64) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=30 DEFAULT CHARSET=utf8
CREATE TABLE `plastic` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(64) NOT NULL DEFAULT '',
`manufacturer_id` int(11) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`),
UNIQUE KEY `name` (`name`,`manufacturer_id`),
KEY `manufacturer_id` (`manufacturer_id`),
CONSTRAINT `plastic_ibfk_1` FOREIGN KEY (`manufacturer_id`) REFERENCES `manufacturer` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=68 DEFAULT CHARSET=utf8
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,塑料具有Yii称之为与制造商的BELONGS_TO关系 - 一个制造商可以制造几种不同的塑料.
我试图通过默认塑料管理页面中的制造商名称进行搜索,但搜索字段不会显示在"制造商"列中.我遵循了这个指南,我想我差不多了,但是我被困在一个小细节上.
在我的Plastic模型类中,根据上面的链接,我有:
class Plastic extends CActiveRecord
{
public $manufacturer_search; …Run Code Online (Sandbox Code Playgroud) 我在sql server中有两个表:
第一个表Message_Child有一个复合主键(MessageId,ChildId)
Message_Child (MessageId, ChildId, Date)
Run Code Online (Sandbox Code Playgroud)
第二个表应该包含表的外键Message_Child,所以我创建了两列:MessageId和ChildId.
Request (RequestId, MessageId, ChildId, type)
Run Code Online (Sandbox Code Playgroud)
我创建了约束如下:
Alter table Request
ADD FOREIGN KEY (MessageId, ChildId) REFERENCES Message_Child(MessageId, ChildId);
Run Code Online (Sandbox Code Playgroud)
但是我收到以下错误:
引用的表'Message_Child'中没有主键或候选键与外键'FK_ Request _534D60F1' 中的引用列列表匹配.
编辑 添加代码:
Message_Child表:
CREATE TABLE [dbo].[Message_Child](
[ChildId] [int] NOT NULL,
[MessageId] [int] NOT NULL,
[Date] [datetime] NULL,
CONSTRAINT [PK_Message_Child] PRIMARY KEY CLUSTERED
(
[ChildId] ASC,
[MessageId] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) …Run Code Online (Sandbox Code Playgroud) 我在MySQL数据库中有两个表 - parent, child. 我正在尝试根据父表向我的子表添加外键引用.有没有之间的任何显著差异ON UPDATE CASCADE和ON 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
对于我的项目,我使用的是oracle数据库,其中必须使用2种不同的数据库架构。请考虑以下情形-
我有一个模式A,在其中有一个table_a带有主键的表apk
我有另一个模式B,在其中有一个table_b带有主键的表bpk
如果这两个表都在同一个数据库中,那么我可以轻松建立主键-外键关系。
但是我能否在这两个列之间创建主键-外键关系(或类似的东西)- A.table_a.apk和B.table_b.pbk。
提前致谢。
database oracle foreign-keys primary-key relational-database
foreign-keys ×10
mysql ×4
database ×2
activerecord ×1
constraints ×1
django ×1
error-code ×1
mapping ×1
model ×1
oracle ×1
php ×1
phpmyadmin ×1
primary-key ×1
ruby ×1
search ×1
sql ×1
sql-server ×1
sqlite ×1
triggers ×1
yii ×1