Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database design 在数据库表设计中,“虚拟商品”如何影响表设计——我们应该创建虚拟商品的实例吗?_Database Design - Fatal编程技术网

Database design 在数据库表设计中,“虚拟商品”如何影响表设计——我们应该创建虚拟商品的实例吗?

Database design 在数据库表设计中,“虚拟商品”如何影响表设计——我们应该创建虚拟商品的实例吗?,database-design,Database Design,当我们为DVD租赁公司设计数据库表时,实际上我们有一部电影(这是一个抽象的概念)和一张物理DVD,因此对于每次租赁,我们都有一个多对多表,其中包含以下字段: TransactionID UserID DvdID RentedDate RentalDuration AmountPaid 但是虚拟商品呢?例如,如果我们让用户在线租用电影3天,我们实际上没有DVD,因此我们可能有一张桌子: TransactionID UserID MovieID Ren

当我们为DVD租赁公司设计数据库表时,实际上我们有一部电影(这是一个抽象的概念)和一张物理DVD,因此对于每次租赁,我们都有一个多对多表,其中包含以下字段:

  TransactionID   UserID    DvdID   RentedDate    RentalDuration   AmountPaid
但是虚拟商品呢?例如,如果我们让用户在线租用电影3天,我们实际上没有DVD,因此我们可能有一张桌子:

  TransactionID   UserID    MovieID   RentedDate   RentalDuration    AmountPaid
我们是否应该为虚拟货物的每个实例创建一个记录?例如,如果电影中的虚拟物品可以授权在3台设备上观看,并且有3个设备ID,那么我们是否应该在VirtualGoods表中创建一个虚拟物品记录,每个记录都有一个VirtualGoodID,然后是另一个具有

  VirtualGoodID   DeviceID
将电影与设备ID匹配


我们也可以像VirtualGood一样使用TransactionID。在某些情况下,我们可能需要创建一个记录,以便在VirtualGoods表中记录此虚拟商品?

答案取决于您的确切要求,而您在本文中没有详细说明这些要求。例如,在线租赁是与抽象DVD相关还是与物理DVD相关?您是只租用DVD的录音,还是在网上租用时保留实体DVD?从你所说的到目前为止,我认为除了你已经拥有的东西之外,你不需要“虚拟物品”