我正在处理的 Oracle SQL 项目中遇到问题:
我有一个(弱)实体'Ticket',它作为主键:(Customer_id,packet_id,project_id,ticket_id)。Customer_id、packet_id 和 project_id 也是外键。
但是,一张票只能是一个数据包或一个项目,因为它们都在主键中,所以它们不能为空,而其中一个实际上总是为空的。但我需要两者,因为一张票总是属于其中的一张。
我想到了一个可能的解决方案,我认为我可以为所有产品制作 1 个 ID,但是还有另一个问题,因为如果我想将这个 product_id 实现为外键,我不知道我应该让它到哪个实体参考。
有没有办法在创建表时制作“可选主键”或使用 if 语句?还是一种可选参考的方法?我已经尝试过 if 语句和一个案例,但它没有用。