刚开始使用Ruby on Rails来看看它是什么样的.
我有一个带有id的用户模型和一个带有adderId的帖子模型.post模型的adderId应该是创建它的用户的用户id.
我如何将这些与Ruby on Rails联系起来?
我有一个与数据库相关的问题,我自己找不到答案。目前我遇到了一个情况,我有一个包含两个表的数据库。这两个表被命名为 items 和 items_sequences。我想要做的是在项目数据库的主键和 items_sequences 表中的字段之间建立关系。下面是一个说明性的例子。
| Items | | items_sequences |
|-------| |------------------|
| id | | sequence_id |
| foo | | counter |
Run Code Online (Sandbox Code Playgroud)
关键是建立关系并不难。但是,如果制作了一个项目,我想做什么,还应该制作一个项目序列,其中包含一个带有项目本身主键的 sequence_id。如果一个 Item 被删除,那么 item_sequence 也应该被删除。顺便说一下,这应该是 1:1 的关系。
我忘记了如何做到这一点,如果有人能指出我正确的方向,我将不胜感激。目前,如果重要的话,我正在使用 postgresql 数据库。
谢谢,
安泰克
我希望做的是确保在数据库模式中维护外键关系,但出于性能原因,不强制执行约束或产生任何索引开销.它的目的纯粹是为了记录这种关系.这通常被称为"合成关系".
关于Oracle SQL中的连接表的快速问题.我理解他们的功能和他们在"多对多"关系中的角色,但是"一对多"关系呢?我有两张桌子,Employees和Positions.每个员工只能持有一个职位,但每个职位可以有很多员工.例如,John Doe只能是销售主管,但公司有4名销售主管.这是我到目前为止编码的方式:
CREATE TABLE Positions (
position_id NUMBER(2) NOT NULL,
position_name VARCHAR2(25) NOT NULL,
CONSTRAINT pk_position PRIMARY KEY(position_id)
);
CREATE TABLE Employee (
emp_id NUMBER(3) NOT NULL,
emp_name VARCHAR2(30) NOT NULL,
emp_position NUMBER(2) NOT NULL,
emp_salary NUMBER(5) NOT NULL,
CONSTRAINT pk_employee PRIMARY KEY(emp_id),
CONSTRAINT fk_emp_pos FOREIGN KEY (emp_position)
REFERENCES Position(position_id)
);
CREATE TABLE pos_emp (
position_id NUMBER(2) NOT NULL,
emp_id NUMBER(3) NOT NULL,
CONSTRAINT pk_pos_emp PRIMARY KEY(position_id, emp_id)
);
Run Code Online (Sandbox Code Playgroud)
它是否正确?是否需要:
a.Employee表中的外键?
湾 联结表? …
我有一个关于如何使用第二个字段作为约束更新级联字段的问题.
结构是这样的(我删除了不必要的列):
表nodes与列idNode和idDimension(它们一起形成主键).
forces带列idForce(PK)的表,idNode(外键到nodes.idNode)和idDimension.
级联更新和删除所有内容.
这种结构似乎出现的问题是:
如果在nodes我有一个像(1,1)和一个像(1,2)和在forces(1,1,1)和(1,1,2)的条目,我更新或删除nodes两个条目中的第一个条目forces将是影响.
我只需要影响那个也有相应idDimension的那个.如何修改当前结构呢?
编辑:表格 - 节点:
CREATE TABLE IF NOT EXISTS `nodes` (
`idNode` varchar(11) NOT NULL,
`idDimension` int(10) unsigned NOT NULL,
`idNetwork` int(10) unsigned NOT NULL DEFAULT '0',
`level` int(11) unsigned NOT NULL DEFAULT '0',
`energy` bigint(20) DEFAULT NULL,
`resources` bigint(20) unsigned NOT NULL DEFAULT '0',
`x` int(11) NOT …Run Code Online (Sandbox Code Playgroud) 好吧,我有两张桌子
Field | Type | Null | Key | Default | Extra
id_evento_grupo int(10) unsigned NO PRI auto_increment
id_evento int(8) unsigned NO MUL
id_grupo int(8) unsigned NO MUL
identificacao varchar(55) NO
Run Code Online (Sandbox Code Playgroud)
Field | Type | Null | Key | Default | Extra
id_evento int(8) unsigned NO PRI
identificacao varchar(55) NO PRI
Run Code Online (Sandbox Code Playgroud)
publica_evento_grupo.id_eventoin是第三个名为publica_evento的表的外键,但也是表的列的外键publica_identificacao_publicacao.identificacao.问题是,我必须通过密钥创建将publica_evento_grupo与publica_identificacao_publicacao相关联的外键id_evento,但是当我尝试使用该列创建另一个FK时identificacao,它会给出下面的errno
[Err] 1005 - Can't create table '#sql-1049_1980992' …Run Code Online (Sandbox Code Playgroud) mysql sql indexing entity-relationship foreign-key-relationship
在我们的数据库系统中,我们有学生和人事领域.他们有PersonnelCardId和StudentCardId,我们把它们作为主键.然后我们有一个持有cardID的支付设备,我们宣称它是一个外键.在这种情况下我们无法插入行,经过研究后我们了解到我们无法将两个主键引用到外键.那么我们如何解决这种情况呢?谢谢.
大家好日子!
我的应用程序使用了基于django类的通用列表视图.我有两个模型对象:通过外键链接的图书和发布者(下面的代码).我想使用ListView向发布商展示他们的图书,但过滤图书(只获取当前用户拥有的有效图书)
附加信息:如果可能的话,我不想在模板中使用过滤器.附加信息2:我不能在模型类中使用过滤器,因为我需要访问请求对象
码
models.py
class Publisher(models.Model):
name = models.CharField(max_length=255)
class Book(models.Model):
name = models.CharField(max_length=255)
active = models.BooleanField(default=True)
publisher = models.ForeignKey(Publisher, related_name='books')
owner = models.ForeignKey(User)
Run Code Online (Sandbox Code Playgroud)
views.py
class ListBooksByPublisher(ListView):
model = Publisher
template_name = 'list.html'
context_object_name = 'books'
Run Code Online (Sandbox Code Playgroud)
list.html
{% for publisher in publishers %}
{{ publisher.name }}
{% for book in publisher.books.all %}
{{ book.name }}
{% endfor %}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
任何帮助非常感谢!
有关
与我的其他问题相关:
数据设计
假设我有一个标签表:
tblTags
-------------
TagID (int)
Name (string)
Run Code Online (Sandbox Code Playgroud)
还有两个内容表:
tblBlogs
-------------
Anchor (GUID, Primary Key)
BlogTitle (string)
+ More custom fields
tblTutorials
-------------
Anchor (GUID, Primary Key)
TutorialTitle (string)
+ More custom fields
Run Code Online (Sandbox Code Playgroud)
还会有更多带有锚点的表格,它不仅仅是2.
然后将标签与上述实体相关联:
tblTagAnchors
-------------
TagID (int, Foreign Key)
Anchor (GUID, Foreign Key)
Run Code Online (Sandbox Code Playgroud)
我的问题是,一旦我建立了博客和教程与特定标签的关联,有没有办法编写一个查询来返回带有特定标签的博客或教程?无需对博客和教程进行单独查询?
主要用途是搜索,类似于(伪):
select from tblBlogs and tblTutorials where the GUID exists in tblTagAnchors where tagID = 5
for each record returned
if record from Blog
response.write("<a href=blogView.aspx?ID=" + recID)
else if record …Run Code Online (Sandbox Code Playgroud) sql database-design guid foreign-keys foreign-key-relationship
我正在使用PHP MySQL,并尝试将一个外键添加到一个名为代理的表中,该表名为AreaID,该列应该是表区域ID PK区域的外键.我使用了这个查询,虽然它在添加链接到其他表的外键时起作用,但它无法链接到区域表.
ALTER TABLE properties
ADD FOREIGN KEY (AreaID)
REFERENCES area(AreaID)
Run Code Online (Sandbox Code Playgroud)
我复活的错误是:
ALTER TABLE properties ADD FOREIGN KEY ( AreaID ) REFERENCES AREA( AreaID )
Run Code Online (Sandbox Code Playgroud)
MySQL说:
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 'area(AreaID)' at line 3
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
sql ×7
foreign-keys ×4
mysql ×3
database ×2
oracle ×2
constraints ×1
django ×1
guid ×1
indexing ×1
postgresql ×1
relationship ×1
ruby ×1
sql-server ×1