我正在学习SQL中的表设计,我想知道如何创建映射表以建立两个其他表之间的多对多关系?
我认为映射表需要两个主键 - 但我看不出如何创建它,因为它看起来只能有一个主键列?
我正在使用Database Diagrams功能来创建表和关系.
我是一个可可新手试图创建一个包括Core Data的iPhone应用程序.
我的问题是:我现在有一个小应用程序正在运行一个名为播放列表的实体,我在表视图中显示并可以添加和删除条目.
我在我的PlayerAppDelegate中有这些:
playlistManagedObjectModel
playlistListManagedObjectContext
playlistListPersistentStoreCoordinator
添加实体:
Playlist *playlist = (Playlist *)[NSEntityDescription
insertNewObjectForEntityForName:@"Playlist"
inManagedObjectContext:playlistListManagedObjectContext];
Run Code Online (Sandbox Code Playgroud)
现在我想添加一个名为Song的子级别,它具有多对多的关系.
添加了播放列表属性:添加了songRelation Song属性:playlistRelation
我已经创建了这个实体,并且双向建立了关系,单击Optional标记,因为我想在播放列表中至少有一首歌曲.
设置此关系后,我现在无法再创建播放列表而不会收到警告.问题是"它"也想创作一首歌,但我不知道怎么做.
在这种情况下,我找不到一个关于如何添加新播放列表的示例的单个地方,即何时与另一个必须添加的实体有关系.
我需要创建这些:
songManagedObjectModel
songListManagedObjectContext
songListPersistentStoreCoordinator
Run Code Online (Sandbox Code Playgroud)
或以某种方式通过播放列表实体访问歌曲实体?
也许这样的东西:
添加播放列表
添加歌曲
设置"关系"属性(如何?)
保存到持久性商店
要么????
我已经搜索了很多东西,可能误解了一些基本的东西,因为没有可用的例子....
Rgds PM
我正在尝试设计一个与ASP.net MVC应用程序一起使用的数据库.以下是场景:有三个实体,用户可以为这些不同的实体发布评论.我只是想知道如何只为一个表放置注释并将所有其他实体链接到它.显然,Comments表需要3个引用(外键)到这些表,但是你知道这些外键不能为null,只能为每一行填充其中一个.有没有比为每个实体的评论实施三个不同的表更好的方法?
我目前正在寻找构建绘制实体关系(数据模型)的应用程序.
看着Sproutcore和卡布奇诺,他们看起来都很健壮,可以处理那种事情(参见280张卡布奇诺咖啡的幻灯片)......
理想情况下,我需要一个框架,让用户拖放组件,然后将它们链接在一起,然后当用户完成后,能够"冻结"这些对象,因为JSON已准备好存储在某种数据库中,因此可以加载它们再次...
哪些提到的框架已经更加面向这个?
或者最容易在其缺乏的地方延伸?
或者从长远来看,使用jQuery/prototype会更容易吗?
我已经看到了一些在Rails中:include调用ActiveRecord find方法之一时传递哈希值的例子.但是,我还没有看到任何关于这是否可以通过关系方法的例子.例如,假设我有以下内容:
def User < ActiveRecord::Base
has_many :user_favorites
has_many :favorites, :through => :user_favorites
end
def Favorite < ActiveRecord::Base
has_many :user_favorites
has_many :users, :through => :user_favorites
end
def UserFavorite < ActiveRecord::Base
belongs_to :user
belongs_to :favorite
end
Run Code Online (Sandbox Code Playgroud)
我看到的所有示例都显示如下代码:
User.find(:all, :include => :favorite)
Run Code Online (Sandbox Code Playgroud)
但我没有看到任何关于使用关系的例子.相反,我可以做这样的事情吗?
User.favorites(:include => :user)
Run Code Online (Sandbox Code Playgroud) entity-relationship ruby-on-rails query-optimization select-n-plus-1
Dunno如何恰当地命名.我在m:n关系中有两个实体:成员和角色.
public class Role
{
public int Id { get; set; }
public string Title { get; set; }
public ICollection<Member> MembersInRole { get; set; }
}
public class Member
{
public int Id { get; set; }
public string Name { get; set; }
public string Password { get; set; }
public string Email { get; set; }
public ICollection<Role> Roles { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我已经制作了一些种子数据:http :
//i56.tinypic.com/2vjvj1w.png
并写了测试:http :
//i54.tinypic.com/112916b.png
问题是,我的会员实体没有分配角色,即使我在上下文中创建它们(如图所示).我不知道出了什么问题.数据库中的表似乎没问题.我不确定上下文实例是否有问题.但它应该没问题,因为我一直在处理种子数据.
entity-relationship many-to-many entity-framework ef-code-first entity-framework-4.1
我正在寻找从Viso图中导出SQL的问题的相反解决方案.我有用于创建MySQL数据库的多个表的SQL语句.有没有办法使用Visio 2010的逆向工程功能来创建其图表?
我想知道是否有可能从Visio可以连接的SQL语句(MySQL)创建Access数据库...替代我将尝试使用另一个MySQL数据库,在那里创建表,并尝试连接到Visio到这个数据库.任何说明如何做到这一点?其他方法?
我正在尝试在两个表之间创建关系.第一列有四列First(idP,state,phone,no),第二列有4列:Second(id,fname,lname,city).但是,当我尝试在它们之间建立关系时,我得到错误"关系的双方必须具有相同的列数".好吧,他们都有4列.
我有一个双向的一对多关系.
0或1 客户 < - > 0个或更多产品订单的列表.
应该在两个实体上设置或取消设置该关系:在客户端,我想设置分配给客户端的产品订单列表; 然后应该将客户端设置/取消设置为自动选择的订单.在产品订单方面,我想设置分配了oder的客户端; 然后,应从其先前已分配的客户列表中删除该产品订单,并将其添加到新分配的客户列表中.
我想使用纯JPA 2.0注释和一个"合并"调用到实体管理器(使用级联选项).我已尝试使用以下代码片段,但它不起作用(我使用EclipseLink 2.2.0作为持久性提供程序)
@Entity
public class Client implements Serializable {
@OneToMany(mappedBy = "client", cascade= CascadeType.ALL)
private List<ProductOrder> orders = new ArrayList<>();
public void setOrders(List<ProductOrder> orders) {
for (ProductOrder order : this.orders) {
order.unsetClient();
// don't use order.setClient(null);
// (ConcurrentModificationEx on array)
// TODO doesn't work!
}
for (ProductOrder order : orders) {
order.setClient(this);
}
this.orders = orders;
}
// other fields / getters / setters
}
@Entity
public …Run Code Online (Sandbox Code Playgroud) 我想知道如何正确地设置主键的关系.例如,我们有ER图表,其中包含元素:
为了将其转换为关系模型,我们应该做一些技巧.上述处理关系的主键,但所有的元素都在自然键 -所以我们可以把它们原样或更换代理键.
考虑一些情况.
密钥属性是一个名称 - 因此它必须是类型CHAR或VARCHAR.通常,名称成为关键属性.
两个(或更多)识别关系成为关系的复合主键(由外键组成).
识别具有弱密钥属性的关系也成为复合主密钥.
关联实体通常具有两个或多个识别关系,因此它们是连接关系(连接表).
如何为关系设置主键以处理所有上述情况(可能还有一些我没有提及的情况)?
如何避免使用代理键以及在哪些情况下他们是必要的?
如何设置主键的数据类型?
如果必须将复合主键传递给子关系,是否应该用代理替换?
在我的视图中使用代理键的优点和缺点:
它们是紧凑的(通常是类型的INT),有时可以替代复合键
当他们在外国钥匙时,他们是说明性的
他们被无痛地编入索引
他们是数字而且毫无意义.例如,我希望在我的界面应用程序中填写连接表 - 所以我将别无选择,只能将数字联系起来 …
database database-design entity-relationship relational-database database-schema
sql ×2
sql-server ×2
cappuccino ×1
cocoa ×1
core-data ×1
database ×1
diagram ×1
export ×1
foreign-keys ×1
iphone ×1
java ×1
javascript ×1
jpa ×1
jpa-2.0 ×1
many-to-many ×1
one-to-many ×1
sproutcore ×1
visio ×1