前天去面试一家外包公司,问了一道基本的数据库题目:多对多模式的实现
我当时的回答是:中间提取出一张表,形成N:1:N表的形式。他问我还有没有别的模式实现,我当时没想的出来回家后我思考了一下,好像可以使用三维的模式来实现N:N的模式(由于项目要求使用的ORACLE数据库,我也就没继续想三维的模式)特在此求教,还有什么模式可以实现N:N

解决方案 »

  1.   

    在子表的外键列中以字符串或 xmltype 形式存储多个外键。
    在关联时使用字符串函数或 xmltype 函数拆分获取这些外键。
      

  2.   

    我觉得ORACLE里面加入虚拟列可以实现
      

  3.   

    N:N?  什么需求用到这个模式?通常是分解为N:1:N
      

  4.   


    就是问多对多,在数据库中怎么用表来实现,例子就是学生选课的模式,除了分解成N:1:N之外还有没有别的方法建表了?昨天继而面试又问了一道C++的题目,说,除了使用函数参数列表的方式将参数传给函数之外,还有什么方式可以将参数传给函数,至少得说出两种,我想到了还可以使用全局变量和模板参数列表的方式,不知道还有没有别的方式
      

  5.   

    俺首先想到的,应该是举一个具体的例子,俺接触的最有感受的,应该是用户,模块权限,角色等之间的复杂关系,应该是多对多吧?比如使用者按用户级别划分,系统程序按模块划分权限,这样一个具体的用户就有多个模块权限对应,而一个具体的模块权限也有多个用户对应,这时候再假模假式的写个SQL查询语句,是不是就可以了啊?至于函数之间交换数据的方式,比如:TCP/IPC通信,数据文件,消息或者数据库高级队列等等,方法很多呀