create table room_booking {
roomid,
booking_started,
booking_ended
}
and some simple sql to check if any rows exist within the required date range would have covered it? What other aspects am I not considering? create table room_booking {
roomid,
booking_started,
booking_ended
}
and some simple sql to check if any rows exist within the required date range would have covered it? What other aspects am I not considering?https://www.youtube.com/watch?v=wdFYEuWWpzo
Pretty amazing stats in there!
book(Room, Rate):-
availableBuildings(Buildings),
availableRooms(Buildings, Rooms),
rate_less_than(Rate, Rooms)
cheapest(Rooms, Room).
However complex you think this problem is, it's pretty simple. It's a very old problem, scheduling, well understood and solved. Using the wrong tool makes it a nightmare. Using the right tool makes it ridiculously easy. The solution is not the database, but the language.You can use ODBC http://www.swi-prolog.org/pldoc/doc_for?object=section(%27pa...
You can use CSV http://www.swi-prolog.org/pldoc/man?section=csv
I've used the above methods.
For RDF, you can load with various methods even over http http://www.swi-prolog.org/pldoc/man?section=rdflib
I suppose one could have a prolog service that came up with suggestions, ordered by preference, and then attempt committing them in order to the actual transactional storage layer. But I don't see how you could avoid re-implementing transactions.
With an rdms you could look for options, and attempt a booking in a transaction, and have a fairly established way to resolve conflicts.