Refbase and library manager

Marco
2008-09-09
2013-05-28
  • Marco
    Marco
    2008-09-09

    I've just found refBase. I think it would be the ideal tool for my group.
    However I would like to know if it would be possible somehow to add extra data to manage a library.

    I'd like to have a database infrastructure (a functionality in refBase, database external to refBase and somehow integrated  with it) that stores the info about each book, such as "room", "shelf", "borrowed by", etc.

    This database should of course keep the bibliographic info of the type that refBase manage.

    However info such as "room", "borrowed by" are specific to a particular copy of the book, so simply having an extra custom field in the bibliographic data (as suggested here:) won't help in this case.

    My question is:
    is it possible somehow to integrate refBase with this extra information?

    Thanks for the answers.
    Kind regards,
    Marco

     
    • Marco
      Marco
      2008-09-09

      oops I forgot to include the link to the suggested feature of custom fields. Here it is:
      http://wiki.refbase.net/index.php/Feature_request#Custom_fields

      Marco

       
    • Hi Marco,

      > I'd like to have a database infrastructure (a functionality in
      > refBase, database external to refBase and somehow integrated  with
      > it) that stores the info about each book, such as "room", "shelf",
      > "borrowed by", etc.

      I'd *love* to support a flexible infrastructure that would allow to add custom fields, or to integrate refbase with external databases. However, this is kind of a big feature since it most probably would require many changes under the hood. Unfortunately, I don't have the time to tackle this now, so it's not something that is coming in the *near* future, sorry! But I definitively agree with you that it would be a useful feature.

      Btw, in our institution, we do actually use refbase to manage our small (~1k items) inhouse library of books, maps & reports. However, we don't have the need to store any circulation information, and we don't have multiple copies of one particular item. So we've just made a dedicated "library" user, and put the room & shelf info into the 'location' field. Then we use 'library_search.php' to search the items in our library. That said, I understand that this wouldn't really work in your case.

      If you need a fully-featured library management system, maybe dedicated applications such as Greenstone or Koha are more appropriate for you:

      http://www.greenstone.org/
      http://www.koha.org/

      Or, if you'd still like to use refbase (for some other reasons), maybe these apps could be somehow integrated with refbase. But I'd need to know more about your envisioned setup to give more/better advice.

      Regards, Matthias

       
      • Marco
        Marco
        2008-09-10

        Hi Matthias,

        the situation in our Lab is almost the same that at your institution: we have around 1000 books and for the most we have only a single copy. Though we have two or more copies for very few books, it still would be nice to be able to manage this properly.

        I thought few additional SQL tables (i.e. without modifying the current refBase ones) and some php code for the UI, could do the job. This tables would use foreign keys to refer to the book bibliographic data.
        Basically we need to store the room, the shelf, and who took the book home if any. So maybe a single table could be enough to do the job.

        I do not know how easy it will be to make those additions, because I am still a novice with SQL and PHP.
        I had a quick look at the refBase source code, and was already disoriented by the fact that I could not find out the SQL structure.
        I decided to install refBase, because it is probably my best option, and try to add this extra feature myself when I'll have some free time in the future.

        I would prefer not to diverge from main refBase development, but probably the modification I might add are too specialized to be considered in the main development branch (if I understood correctly I would like to add some quite general infrstructure to handle many possible use cases: which is very good).

        Do you think my approach could be feasible in a week of programming?
        Do you have any hint to get started in understanding the source code (and in particular the SQL database structure)?
        (for example I did not find where you create the tables, I found one function addTableIfNotExists but I did not find any caller in the php files).

        Thanks for your answers and the precious links.

        Kind regards,
        Marco

         
        • > Basically we need to store the room, the shelf, and who took the book home if
          > any. So maybe a single table could be enough to do the job.

          FWIW: We have used pre-existing fields for this type of purpose, but we are not really maintaining a physical library.

          > I had a quick look at the refBase source code, and was already disoriented by
          > the fact that I could not find out the SQL structure.

          See:
            install*.sql
          and also see the 'notes' directory in SVN.

          > Do you think my approach could be feasible in a week of programming?

          An experienced MySQL+PHP developer could certainly do that.  But if you aren't an experienced dev & couldn't find the database structure yourself, it could easily take longer.  (Not meant as discouragement or disparagement--merely a warning.)

          > Do you have any hint to get started in understanding the source code (and in
          > particular the SQL database structure)?

          Just take a look at the existing tables & ask questions.

          > (for example I did not find where you create the tables, I found one function
          > addTableIfNotExists but I did not find any caller in the php files).

          Currently, this is only used when refbase is updated AFAIK.

          I hope this helps & that you can make the changes you need.  Feel free to ask more questions.

          --Rick