多对多关系中的 Oracle 用户
Posted
技术标签:
【中文标题】多对多关系中的 Oracle 用户【英文标题】:Oracle users in many to many relationship 【发布时间】:2018-02-14 01:44:31 【问题描述】:我正在创建一个数据库,该数据库将代表一个简单的视频游戏库存,其中用户将拥有某些项目的所有权。我希望在 dba_users 视图和我的 items 表之间形成多对多关系,以形成一个名为 userItems 的表。
我做了一些研究,发现问题在于 dba_users 是一个视图,不能有与之关联的外键。
我是否需要创建自己的 users 表,如果需要,如何让用户名与 dba_users 用户名匹配?
还有其他方法可以解决这个问题吗?谢谢!
【问题讨论】:
请查看How to create a Minimal, Complete, and Verifiable example,然后相应地编辑您的问题。 作为数据库用户与您的应用程序有什么关系? @GordonLinoff 每个项目都需要有一个所有者。该所有者将是用户。 【参考方案1】:我认为您的关系实际上是通过交叉表实现的一对多/一对多。 像这样的:
create table item_inventory
(
item_id varchar2(127),
username varchar2(30),
constraint fk_inventory_user foreign key (username) references all_users(username),
constraint fk_inventory_item foreign key (item_id) references items(item_id)
);
【讨论】:
这不起作用 -all_users(username)
不是 UNIQUE
。此外,对于非 dba 用户,它会说权限不足,因为 select any dictionary
权限不足以引用数据字典表/视图。以上是关于多对多关系中的 Oracle 用户的主要内容,如果未能解决你的问题,请参考以下文章