有什么可以更好:更多列具有Null或更多表?

时间:2014-12-26 16:48:45

标签: php mysql database mysqli

我正在为物业管理制作一个网络应用程序。 我们有三种租金的选择(行动)。

移动内容

--------------------------
id
id_room
colect_date
rent
late_fee
other_fee
bookind_fee
Deposit
Hold Deposit
-------------------------

租赁选择

--------------------------
id
id_room
colect_date
rent
late_fee
other_fee
-------------------------

搬出

--------------------------
id
id_room
colect_date
move_out_date
rent
late_fee
other_fee
maintenance_fee
break_fee
-------------------------

大多数情况下,用户可以单独检查它们,但也可以同时查看它们。

  1. 所以,如果我将它们全部放在1个表中,那么使用1个查询我可以选择所有这些,这对性能更好,但问题是在Move Ins表中我们有一些列不在另外2个表。 Move out表也是如此。
  2. 对于我们拥有的每个房间,我们都会搬入,3-12个租赁集合和1个搬出。 因此,如果我将所有数据放在1个表中,我们将有许多NULL值。 示例:下面所有都包含在1个表中。对于每个房间,我们将有3-12个租金选择,这意味着我们将有12行具有NUll值(move_out_date,bookind_fee,存款,保留存款,维护费,休息费)

    --------------------------
    id
    id_room
    colect_date
    move_out_date
    rent
    late_fee
    other_fee
    bookind_fee
    Deposit
    Hold Deposit
    maintenance_fee
    break_fee
    type_of_colection
    -------------------------
    
    1. 如果我将它们分成不同的表格,那么要选择它们我需要3个查询,或加入它们,这样会慢一些。
    2. 所以我的问题是,更好的是,在不同的表中拆分它们或者有一个包含大量NULL字段的表,至少5-6列字段将是Null。

      P.S:每个月都有:

       600-700 Rent Colections
       10-100 Move ins
       10-100 Move outs
      

1 个答案:

答案 0 :(得分:0)

如你所说" 1进入,3-12租金选择,1移出"似乎单独的表会更好。这样,您可以消除重复数据,防止空值,并且通常您的表格将更好地构建。您可以在1个单独的表中移入和移出,因为它们都是单个条目,而另一个表中的每月租赁集合。