jason330 / GetTable

0 stars 0 forks source link

FSP Wiki Setup + Feature List + Schema #1

Open mwmadsen67 opened 2 years ago

mwmadsen67 commented 2 years ago

Hi Jason, here is a checklist for going through tonight's homework and setting up your wiki. If it makes it easier for you, you can check these off while working through it, otherwise I will check them off when I review your docs tomorrow.


Wiki Page Home


Feature List


Database Schema


mwmadsen67 commented 2 years ago

Alright I have looked through your docs and they're looking great so far. Your feature list is solid so I don't have any notes in that.

A couple minor notes/ questions on your schema:

I hope this feedback is helpful, nice work so far Jason!

jason330 commented 2 years ago

Hi Mike!

Thanks so much for all your feedback! I've replied below each question:

Alright I have looked through your docs and they're looking great so far. Your feature list is solid so I don't have any notes in that.

A couple minor notes/ questions on your schema:

  • Do you need to have not null and unique on username? On the website itself I see a lot of "OpenTable Diner" which implies that sometimes users don't have a username. I also see a lot of short names like NikkiF or BillT which makes me think they don't need to be unique either. I wouldn't add the constraints if you don't need them.

Thanks so much for catching this! Made the updates!

  • On restaurants, what is reservation interval and tables per time?

I wasn't sure about the best way to keep track of table availability, so tentatively planned to compute availability instead of maintaining a database table. I figured that restaurants would provide their availability in terms of days of the week they're open ( days_open ) and open and close times ( opening_hour and closing_hour ), and if they also specify the time interval between reservations ( reservation_interval ) and the number of tables available per reservation time ( tables_per_time ), I would be able to compute availability to display to the user on demand. Do you foresee any problems with this or have suggestions for a better way?

  • For reservations, I think you should also include a number of people column. Also restaurant_id should be indexed

Definitely, thanks for catching these!

  • For reports, restaurant_id should be indexed. Also, reservation_date_time_id seems like an odd column. There is no reservation_date_time column so I wouldn't make that an id or a foreign key.

Added the index on restaurant_id , thanks! Yes I realized reservation_date_time_id seems not quite right; I initially had that column to enforce the constraint that each user can only post one review per reservation, and I was trying to get that reservation data from the reservations table. I changed that column to reservation_id. Let me know if you have any thoughts!

  • Also, on the site it looks like they have rating categories like "overall, food, service, ambience". You might want to separate those into 4 different rating columns.

Added these, thanks for catching this as well!

I hope this feedback is helpful, nice work so far Jason!

mwmadsen67 commented 2 years ago

In regards to table availability, I think your explanation makes sense. As long as you have a plan for making those reservations work I am all for it.

Nice job on making the rest of the changes!