On 12 October 2014 12:28, Yongbiao Long <[email protected]> wrote: > On Sun, Oct 12, 2014 at 6:54 PM, Colin Law <[email protected]> wrote: >> The first point is that you should only add rows as seats are booked, >> use that fact that there is no row to indicate that there is no >> booking. > >> Secondly, what is the date? Is that the date of the journey or the >> date of the booking? I don't understand why you have multiplied the >> number of trains by 20 days. If it is the date of the journey then >> consider having a Journeys table which is a particular train on a >> particular day. > > It's the date of the journey. I once thought about this method, the > problem is I don't know how to implement it in rails. In Rails > tutorials and guidelines, there is a model file in app/model directory > for every table. If I need to create new journey tables, what's the > model files and migration files look like?(Or I don't need them any > more?) > >> Thirdly I don't understand why you have 20 factorial for the city >> combinations. Is it not true that if a seat is booked from station 1 >> to station 3 then that implies a booking 1 to 2 and 2 to 3? In which >> case you do not separate rows for bookings 1 to 2, 2 to 3, and 1 to 3. > > According to your first and third point, It's because my design is > different. In my design one booking might indicates more than one row. > A row just means the state of a seat. So, if a seat is booked from > station 1 to station 3, then rows representing 1->3, 1->2, 2->3, 1->4, > 1->5.... all need to change. I do it in this way because I have > another table representing the number of left seats, and I think it's > easier to update this table in my way(in this case, the number of leaf > seats from 1->3, 1->2, 2->3.... decreases by one).
In that case you have redundant data in your database (as 1->3 implies 1->2 and 1->3), which is almost always not the best way to do it. Colin -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/CAL%3D0gLvwrGm5H1V4jmJko9fXeJbOAFAj7GhfkvnepEcrzxDH0g%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.

