我现在有两张表:客户表CUSTOMERS,和设备表DEVICES客户表和设备表之间是一对多的关系:一个客户可以有1到n个设备,而一个设备可以属于0或1个客户。请问:如果新加一个客户的时候一定要添加一个设备,应该怎么设计数据库,以及hibernate映射文件???(即如何限制在Insert一个CUSTOMER的时候,一定要有属于这个CUSTOMER的DEVICE)????详细一点最好!我用的是Oracle9i2的数据库。

解决方案 »

  1.   

    即如何限制在Insert一个CUSTOMER的时候,一定要有属于这个CUSTOMER的DEVICE
    ----------------------------------------------------------------------
    这个就是外键吧!
      

  2.   

    客户表CUSTOMERS
    customId
    customName设备表DEVICES 
    deviceId
    deviceName
    costomId添加设备要选择设备属于哪个用户
      

  3.   

    3楼有误,存deviceId应放在CUSTOMERS客户表CUSTOMERS 
    customId 
    customName 
    deviceId设备表DEVICES  
    deviceId 
    deviceName 在CUSTOMERS.deviceId表,建外建连接DEVICES.deviceId这样就可以保证CUSTOMERS.deviceId的值集合落在DEVICES.deviceId范围。
    这是一个大的约束范围。
    (即如何限制在Insert一个CUSTOMER的时候,一定要有属于这个CUSTOMER的DEVICE)???? 
    =>应该需要有设定表,再通过前台的输入来控制。
      

  4.   

    不明白限定表是一个什么东东?
    我的数据库表是这样的:CUSTOMER表:
    CUS_ID,主键
    CUS_NAME,
    CUS_DESCRIPTION,DEVICE表:DEV_ID,主键
    CUS_ID,外键
    DEV_NAME但是在Insert一个CUSTOMER时,怎样才能保证一定要有属于该CUSTOMER的DEVICE呢?我用hibernate生成的DAO中怎么实现?还望高人说明白一点,多谢!
      

  5.   

    在hibernate中只操作Customer表.
    在Customer表上建一个触发器,以实现表Device与表Customer的同步.