目前的结构如下:
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
我有两个模型。
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.. 这样的。请帮我。这仅在模型内部计算。请。
在我的项目中,员工插入一个表号,选择客户订购的所有项目并将其保存到数据库中。我有三张表:
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) 我正在构建一个 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
我在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
我有以下代码:
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 列出货件。
我需要在 Oracle SQL Developer Data Modeler 中对数据库进行建模。
我必须创建 ARC 关系 (XOR),但我不知道如何创建。我在外键属性中找到了“In Arc”复选框,但它已禁用(灰色)。我没有看到任何其他与 Arc 有关的选项。
oracle xor foreign-key-relationship relationship oracle-sql-data-modeler
我有两张桌子:
ArticleSubscription在Article表中,我有两列构成主键:id, sl。在Subscription表中我有一个外键“idsl”。
我使用这个约束:
constraint FK_idsl
foreign key (idsl) references CSS_SubscriptionGroup(id, sl)
Run Code Online (Sandbox Code Playgroud)
但是当我运行查询时,我收到此错误:
外键中引用列的数量与表 X 中引用列的数量不同
我有以下型号:
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的新手并且这样做了(根据文档):
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) django ×4
sql ×4
foreign-keys ×3
mysql ×2
orm ×2
python ×2
sql-server ×2
database ×1
exception ×1
java ×1
one-to-many ×1
oracle ×1
phpmyadmin ×1
relationship ×1
reverse ×1
sqlite ×1
xor ×1