Helping a friend out: creating a database

AldoAldo Hippo HoorayRegistered User regular
edited May 2007 in Help / Advice Forum
Hey,

I'm making this topic on request of a friend, she's working on a farm and is in need of a database to keep track of some things, I'm copying this off the forum she asked it on, apparently the people over there weren't nerdy enough to help her out.

The tl;dr version is probably enough to say something smart about it.
Short version: I want to create a database for keeping work information in that accessable via login for adding to and editing (publicly viewable though) and information entered using a very simple and easy to use form like thing. If possible, I want this to be both something I can have running on a webpage and something I can run off my flash drive (so we can update it from netless work), with a way to import/export updated information between the two. Most import, as the information is added (and new enteries made) for pages containing that information to automatically update/generate.

If there's anyone willing to help or what not, it would be more than appreciated, but for the most part I'm really just looking for advice and tips from anyone who knows even a bit more than me on what's plausable and what to start looking into and learning to make this happen

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Attempting to explain further, but probably just going to sound even more confusing: The only thing that's really popping to mind for me is something that basically has all the information stored on a spreadsheet (or two or three) and page templates setup to replace specific spots on the page with type spreadsheet information (probably something that could be done with CSS or whatnot, but I really have no fucking clue XD).

If this helps things make anymore sense at all, this will be a database of all the horses, other animals, and staff at the farm(s). Each section (horses/other/staff) with have different information sections and different page layouts. With each entry for an animal/person there will most likely be multiple pages involved (at least for the horses). For example, here's what I have sketched out for the horse template so far:

Main Page/Profile: Horse - - -

2dmdv90.jpg

The blue sections with the black x's through them represent pictures while black represents text only areas.
Not to scale; just for reference.

A: Main profile picture of the horse.
B: Contains most of the Horse's basic information - Name, Age, Birthdate, Birthplace, Height, Weight, Current Location, etc... Height and Weight would be linked to the Height and Weight history section of the horse's medical page and if dead, age would be replaced with 'Deceased'.
C: Thumbnails of any other pictures, each linked to the fullsize version (opens in new window, doesn't replace profile picture) and this section scrolls right and left.
D: Text Link to the Lineage and Offspring page.
E: Text Link to the Medical/Health History Page.
F: Link to the Training History Page.
G: Link to the Race/Comeptition Information Page.
H: Scrollable text box of the Horse's personality descriptions.
I: Scrollable text box of the Horse's Physical Traits.
J: A Scrollable text box for special notes.

Lineage/Offspring Page - - -

4bpadqs.jpg

The Lineage portion will only go back to grandparents. It would be nice if by adding the Sire or Dam here automatically added this horse to the Sire/Dam's offspring (and vice versa), but not necessary.

A: Horse's Sire: Main picture with Sire's name underneat (linked to Sire's profile if available).
B: Horse's Dam: " "
C: Sire's Sire: " "
D: Sire's Dam: " "
E: Dam's Sire: " "
F: Dam's Dam: " "
G: List of Offspring: I haven't decided whether to do this in text only with names linked to the Offsprings profile, or thumbnails of the Offspring's Main pic linked to it's profile in a side scrollable bar much like section C of the main profile. Probably going to go text since the picture way leaves no room for osspring that don't already have a profile or any pictures.

Medical/Health Page - - -

2ikv1ci.jpg

A: Medical History scrollable text box.
B: Family Medical History scrollable text box: This is one of those things that would be cool if it automatically took the information from the Sire, Dam, etc.. Medical history section and listed it here, but not necessary.
C: Status on basic health care aspects: This includes a bunch of different section much like section B of the Main Profile for when they were last shoed, trimmed, wormed, had a vet check, etc...
D: Scrollable list of Height, Weight, Tempurature, and date checked on, sorted by date with the most recent on top.
E: A scrollable text section for any additional info.

Training History Page - - -

35a0hf4.jpg

A: Scrollable text box for current training.
B: Scrollable text box for past training.
C: Side scrollable bar with thumbnails of staff members main picture that have trained or are currently training this particular horse (so once again, something much like the section C of the main profile page).
D: Scrollable text box for things that need to be worked on.
E: Scrollable textbox for additional notes.

Competition/Race Information Page - - -

2mx4dbt.jpg

A: Winning/Awards: Scrollable text box listing winnings and awards by most recent with the Event Name, Location, Date, Jockey/Rider, Event and Win description.
B: Current Competition/Race schedule: Scrollable text box listed by soonest first with Event Name, Location, Description, Date, Horse Number, and Jockey/Rider.

All of these pages would be for just one horse. So for inputing and editing the information, I would want myself and my co-workers tobe able to login into the database, be able to click on something like 'add horse', 'add animal', 'add staff', or and edit button which lets them select from drop down menus categoried by type (or better yet/in addition to an edit button on the main profile page once logged in). The edit/add page would be the same (except of course the edit page would already have any pre-entered information) and be a very simple form like think where everything can jsut be entered in, pictures added (main picture selected from picture uploaded from here), and so forth. Very very very simple and easy to understand from looking at. One of the co-workers is over the top computer illiterate XD

So yes... help, advice, clarifying questions...?

Aldo on

Posts

  • RoundBoyRoundBoy Registered User regular
    edited April 2007
    I think you are a bit confused in your terminology:

    A DATABASE is the medium for storing all information on the horse, etc..

    A WEBSITE is the medium for displaying all information.

    Some thoughts in no particular order:

    Where is this hosted, and what do they offer? mySQL & PHP hosting can be had for a very small amount.. and is the easiest availability. You need more then HTML, and you don't need oracle or other high $$ db system

    CSS is great, but Tables are made to, well, display things in tables. There is nothing wrong with laying out all of this as a large table, especially if the relevant items are dynamically written.

    Make a plot of ALL data you want for the horse, etc. Then you can begin you break it out into various DB tables & remove reduntant information ... the breakup of this information has NOTHING to do with how it is displayed, but rather how it is stored.

    Those are the basic things you need to do.. and unless you want to start cracking books now.. you are probably going to pay a pretty penny for someone to create this. Its not a very quick thing... but once the data is identified, you can make a generic interface fairly quickly.

    RoundBoy on
    sig_civwar.jpg
    Librarians harbor a terrible secret. Find it.
  • FeralFeral MEMETICHARIZARD interior crocodile alligator ⇔ ǝɹʇɐǝɥʇ ǝᴉʌoɯ ʇǝloɹʌǝɥɔ ɐ ǝʌᴉɹp ᴉRegistered User regular
    edited April 2007
    Let's start at the beginning with some basic project management questions before we jump in and talk about technology.

    1) Is this a permanent or temporary solution?
    2) Approximately how much data do you expect to have in the first year? (IE, how many horses)?
    3) Approximately how much data do you expect to have in three years?
    4) How many people total are going to access it? (Today? In three years?)
    5) How many people might be using it simultaneously? (Today? In three years?)
    6) Will all these people be in the same physical location? (IE, an office or farmhouse?)
    7) Does the application have to be accessible via the web, or can it be accessible strictly on a LAN? (I know she said that it needs to be on "a webpage" but that doesn't mean it necessarily has to be accessible from the [noparse]WWW.)[/noparse]
    8) What operating system are they using?
    9) What is their budget? Do they have a budget, or are they looking for ballpark estimates?

    See, the cheapest and easiest - though not necessarily the best - way to do this would be a database application like Microsoft Access. But Access is really only feasible for small databases (under 10,000 records) with few users (under 25 simultaneous users) on the same LAN and no web functionality.

    If they need better performance and scalability, then moving to web-enabled technologies, like SQL/PHP would be better. But that doesn't necessarily mean the system has to be on the web - if all the users are going to be in the same physical location, then you can keep the database and application hosted on a local server. If it absolutely has to be accessed from multiple locations, then getting it on the web is definitely an option, as long as the client understands that this will involve a recurring hosting fee from now until forever.

    Feral on
    every person who doesn't like an acquired taste always seems to think everyone who likes it is faking it. it should be an official fallacy.
    the "no true scotch man" fallacy.
  • AldoAldo Hippo Hooray Registered User regular
    edited April 2007
    RoundBoy wrote: »
    I think you are a bit confused in your terminology:

    A DATABASE is the medium for storing all information on the horse, etc..

    A WEBSITE is the medium for displaying all information.
    She knows that, she's asking for a database co-workers could access and something they can update off her flash-drive because they don't have internet on the land.

    Some thoughts in no particular order:

    Where is this hosted, and what do they offer? mySQL & PHP hosting can be had for a very small amount.. and is the easiest availability. You need more then HTML, and you don't need oracle or other high $$ db system
    There is nothing hosted yet. She's not going to choose until she knows exactly what she'll be working with and what she will need then.

    CSS is great, but Tables are made to, well, display things in tables. There is nothing wrong with laying out all of this as a large table, especially if the relevant items are dynamically written.

    Make a plot of ALL data you want for the horse, etc. Then you can begin you break it out into various DB tables & remove reduntant information ... the breakup of this information has NOTHING to do with how it is displayed, but rather how it is stored.

    Those are the basic things you need to do.. and unless you want to start cracking books now.. you are probably going to pay a pretty penny for someone to create this. Its not a very quick thing... but once the data is identified, you can make a generic interface fairly quickly.

    She already has a plot of the data, she just doesn't know how to organise it storage-wise, she is currently basing it off on visual aspects, because she just doesn't know how else to explain it.

    Aldo on
  • AldoAldo Hippo Hooray Registered User regular
    edited April 2007
    t Feral written by friend:

    1) Trying to hammer out something permanent.
    2) 80-300 horses, 10-20 staff/trainers, 50-100 other.
    3) 20-50 more horses, 5-10 more staff/trainers, 10-25 more other.
    4) Today: 3-4 In three years: 3-10 (but that would only include people who are accessing it with the ability to add and edit. As far as people who would only be viewing it, that would be more around 10-20 today, and not real sure about three years from now. A lot of that would really depend on whether or not the information was made available via the internet or not)
    5) Today: 1-4 In three years: 3-???
    6) Nope. There are two farms (one in Washington and one in Canada), and only one person lives on and would be accessing everything only from the farm here (WA).
    7) Unfortunately not.
    8) Currently Windows XP Home Edition
    9) Currently no budget has been laid out yet. Aside from the hosting this is really something we want to put together ourselves. Even if that does mean hitting the books and spending a lot of time learning what we need to put this together.

    Even with the multiple locations, it doesn't necessarily have to be web accessible. I thought about Access, but from what little experience I have with it and previously tinkering around, I never figured out a way to include a spot for images with each entry, so I'm not even sure that would be possible (is it? ^^; ). As far as identification (especially concerning the horses. The majority of them are Bays, so often times to tell certain one's apart, there are very little differences in the shape or length of their markings that can't exactly be captured in words in a way they could be identified easier just by looking), images are very important (that and for helping to monitor injuries and the like).

    Would it be possible to access an off-line version if it was based on the web, maybe a copy or something?

    Friend also say:
    "I like Feral person."

    Thanks so far RoundBoy and Feral. :D

    Aldo on
  • FeralFeral MEMETICHARIZARD interior crocodile alligator ⇔ ǝɹʇɐǝɥʇ ǝᴉʌoɯ ʇǝloɹʌǝɥɔ ɐ ǝʌᴉɹp ᴉRegistered User regular
    edited April 2007
    Aldo wrote: »
    I thought about Access, but from what little experience I have with it and previously tinkering around, I never figured out a way to include a spot for images with each entry, so I'm not even sure that would be possible (is it? ^^; ).

    It is, but it's a pain. One image per record isn't too bad, multiple images per record quickly gets unwieldly. Between that and the multiple locations issue, it sounds like PHP/MySQL is probably going to be the way to go.
    Aldo wrote: »
    Would it be possible to access an off-line version if it was based on the web, maybe a copy or something?

    There are ways to synchronize between an offline copy of a database and an online copy. You can build something in PHP to import/export the database to text files and linked images; or you could go online and use one of the many MySQL synchronization tools available for download. Either way you're going to want to get comfortable enough in PHP to actually build the application first and worry about import/export later. Just know that it is possible.

    Feral on
    every person who doesn't like an acquired taste always seems to think everyone who likes it is faking it. it should be an official fallacy.
    the "no true scotch man" fallacy.
  • AldoAldo Hippo Hooray Registered User regular
    edited April 2007
    Thanks Feral, this will help my friend out a lot. :D She will have to look up a lot of things, but she thinks she can manage. Do you have any advice on where to look for examples?

    *edit: also, what software for MySQL do you advice?

    Aldo on
  • LewishamLewisham Registered User regular
    edited April 2007
    I was a database developer in a past life (not that I don't do it now), so I can help you out a little bit.

    The first thing to do is understand that the database is the most important bit; not the web site. I know this sounds backwards ("who gives a fuck as long as the website looks OK?") but it's true. If you screw up your database, you're going to get bitten hard on the ass later, and then it might be too late to fix it. Database structures are notoriously resistant to change. If you didn't collect a piece of data you now want from the beginning, you're stuffed. If you want to change which table data is stored, you might be stuffed. This stuff will seriously make you question your sanity.

    Don't use MySQL, use PostgreSQL. PostgreSQL is a much more "databasey" program, and used to have a lot more features than MySQL does (although MySQL has caught up with version 5 somewhat), but it's still the better choice. MySQL won favour with large sites because it processed results slightly faster. With what you are doing, it is better to have the database work better.

    That said; this is a big project. I'd say you are looking at a week full-time (five working days) to get something that resembles what is being asked, and then another week getting it right. And that's if you know exactly what you are doing, so if you're starting from cold then you're looking at a month probably. You can get plenty of advice on how to do all the web site stuff, but look up the database stuff carefully first. Look up Entity-Relationship (ER) diagrams and database normalisation particuarly, and design the database properly. Then you can hack your way through the PHP/CGI/ASP/Ruby on Rails :)

    Lewisham on
  • FeralFeral MEMETICHARIZARD interior crocodile alligator ⇔ ǝɹʇɐǝɥʇ ǝᴉʌoɯ ʇǝloɹʌǝɥɔ ɐ ǝʌᴉɹp ᴉRegistered User regular
    edited April 2007
    Aldo wrote: »
    She will have to look up a lot of things, but she thinks she can manage.

    I hope she realizes that learning PHP and SQL are not trivial tasks. For all intents and purposes, she's going to be learning a scripting language. Most people would just pay somebody to do this. This is roughly analogous to picking up a hammer and nails to add a wing to your own house instead of hiring a contractor.

    Feral on
    every person who doesn't like an acquired taste always seems to think everyone who likes it is faking it. it should be an official fallacy.
    the "no true scotch man" fallacy.
  • LewishamLewisham Registered User regular
    edited April 2007
    Feral wrote: »
    Aldo wrote: »
    She will have to look up a lot of things, but she thinks she can manage.

    I hope she realizes that learning PHP and SQL are not trivial tasks. For all intents and purposes, she's going to be learning a scripting language. Most people would just pay somebody to do this. This is roughly analogous to picking up a hammer and nails to add a wing to your own house instead of hiring a contractor.


    Oh shit, I missed that bit D:

    For all that is holy, do not even attempt this if you haven't programmed before. It simply won't work.

    Oh, and the flash drive thing: probably not going to work. Unless you did it in Access, which is bad, to access the database you need MySQL or whatever stored on every single machine, plus the scripting language environment and a web server. That's not going to be feasible.

    Lewisham on
  • SlagmireSlagmire Registered User regular
    edited April 2007
    MySQL and PHP, from what I can tell, aren't that difficult to jump into, especially if you have any experience with web and database programming. If this is going to be a permanent solution, it probably wouldn't hurt finding a book on it. I've got a peachpit press one for not more then thirty bucks and it's been very useful.

    One last thing: don't use Access. Just. Don't. It's a horrible app and a system-hog to boot.

    Slagmire on
  • AldoAldo Hippo Hooray Registered User regular
    edited April 2007
    She knows it won't be a walk in the park, thanks for the warning, though. :D

    Hm, Lewisham, my friend says, and I quote, "it needs to be a working version, down to being able to view and edit information." is that possible, at all?

    Aldo on
  • LewishamLewisham Registered User regular
    edited April 2007
    Aldo wrote: »
    She knows it won't be a walk in the park, thanks for the warning, though. :D

    Hm, Lewisham, my friend says, and I quote, "it needs to be a working version, down to being able to view and edit information." is that possible, at all?

    On a memory stick? No. It's too difficult. These programs are designed as servers; they're not supposed to be things that can be used "out of the box".

    It may be possible to have all these things running off of a memory stick in some portable format if you find instructions on how to do it, but I would be surprised if that was possible, particuarly in a Windows environment.

    Lewisham on
  • AldoAldo Hippo Hooray Registered User regular
    edited April 2007
    Friend again:

    I'm well aware that learning PHP and SQL are not trivial tasks. I don't expect this easy or magically snap together over night. This whole project is going to be quite extensive, frustrating and time consuming. That's why I'm branching out and asking others more informed than I right now what would be the best route to take to get what I need and it's not going to make it any easier if the key things I need are going to be brushed off to where I sent off down a route that will leave me at a dead end weeks or months from now when it turns out one of the key things I needed weren't plausible in that route (or at all for that matter) :(

    Above all else, the two most important issues really are:

    - Transportability of an offline version to be accessed at either farm is highly important and I really want to avoid having to have a server setup at the farm just for that.
    - The two other girls I work with who want to be helping maintain the information are about as computer illiterate at they come (as mostly likely any other future employees who might get involved will be). This is why I'm trying to find a solution with as much automation as possible (without sacrificing data integrity) that would include a way for me to create an easy and simple setup for them to access for editing and adding to the information. This is also to help save me time in the future so I'm not the only one working on it and having to do everything manually @[email protected] (but if it comes down to that, I will).

    Aldo on
  • japanjapan Registered User regular
    edited April 2007
    Aldo wrote: »
    - Transportability of an offline version to be accessed at either farm is highly important and I really want to avoid having to have a server setup at the farm just for that.

    This doesn't scream "MySQL + PHP" to me. It actually sounds like you'd want something more like a standalone program that just stores plain text files and images. Possibly something like Python with a decent GUI toolkit, storing the data in xml documents (I only skimmed the requirements, but it seems to be mostly text and numbers).

    japan on
  • LewishamLewisham Registered User regular
    edited April 2007
    japan wrote: »
    Aldo wrote: »
    - Transportability of an offline version to be accessed at either farm is highly important and I really want to avoid having to have a server setup at the farm just for that.

    This doesn't scream "MySQL + PHP" to me. It actually sounds like you'd want something more like a standalone program that just stores plain text files and images. Possibly something like Python with a decent GUI toolkit, storing the data in xml documents (I only skimmed the requirements, but it seems to be mostly text and numbers).

    Agreed, but XML and all this jazz is going to make it way too difficult.

    If the transportability is more important than power, you really are looking at standalone programs like Access or Filemaker. You will be hard-pressed to get the functionality out of them that you want, but it can be done.

    Lewisham on
  • JHunzJHunz Registered User regular
    edited April 2007
    Lewisham wrote: »
    Aldo wrote: »
    She knows it won't be a walk in the park, thanks for the warning, though. :D

    Hm, Lewisham, my friend says, and I quote, "it needs to be a working version, down to being able to view and edit information." is that possible, at all?

    On a memory stick? No. It's too difficult. These programs are designed as servers; they're not supposed to be things that can be used "out of the box".

    It may be possible to have all these things running off of a memory stick in some portable format if you find instructions on how to do it, but I would be surprised if that was possible, particuarly in a Windows environment.
    Believe it or not, it's quite feasible. Webserver on a Stick is a prepackaged and preconfigured PHP/MySQL/Apache installation that is quite easy to set up and use. I found it while I was writing and testing a web site for work.

    JHunz on
    bunny.gif Gamertag: JHunz. R.I.P. Mygamercard.net bunny.gif
  • LewishamLewisham Registered User regular
    edited April 2007
    JHunz wrote: »
    Lewisham wrote: »
    Aldo wrote: »
    She knows it won't be a walk in the park, thanks for the warning, though. :D

    Hm, Lewisham, my friend says, and I quote, "it needs to be a working version, down to being able to view and edit information." is that possible, at all?

    On a memory stick? No. It's too difficult. These programs are designed as servers; they're not supposed to be things that can be used "out of the box".

    It may be possible to have all these things running off of a memory stick in some portable format if you find instructions on how to do it, but I would be surprised if that was possible, particuarly in a Windows environment.
    Believe it or not, it's quite feasible. Webserver on a Stick is a prepackaged and preconfigured PHP/MySQL/Apache installation that is quite easy to set up and use. I found it while I was writing and testing a web site for work.

    That's awesomely cool! I didn't know it was possible. It must be crazy hacked source or build options :) It still sounds like it might be trying to shoehorn the "better" result into a problem where it doesn't fit; I'm still leaning towards a standalone DB program at this point.

    Something better than Access though. Maybe Filemaker.

    Lewisham on
  • blincolnblincoln Registered User
    edited April 2007
    Lewisham wrote: »
    I'm still leaning towards a standalone DB program at this point.

    I agree.

    blincoln on
    Legacy of Kain: The Lost Worlds
    http://www.thelostworlds.net/
  • RoundBoyRoundBoy Registered User regular
    edited May 2007
    I suggest after reading your responses that you just use an Access Db and forms. I have no idea the scope of the data, but I'll take a stab :

    Create tables like


    HORSE

    horse_id
    name
    sire_id
    etc

    STAFF
    staff_id
    name
    etc


    The only tricky thing would be modeling the sire data.. but if each record contains the id of the horse they sired, it can create a link.. It MIGHT need a seperate table to model all of that though... i need to play with it.

    The forms are created easily in the GUI interface, so you can lay them out as you need to. Its not THAT much easier to do VB over php/ mysql ... but its an option.

    RoundBoy on
    sig_civwar.jpg
    Librarians harbor a terrible secret. Find it.
  • FeralFeral MEMETICHARIZARD interior crocodile alligator ⇔ ǝɹʇɐǝɥʇ ǝᴉʌoɯ ʇǝloɹʌǝɥɔ ɐ ǝʌᴉɹp ᴉRegistered User regular
    edited May 2007
    Which is more important: fitting on a memory stick or having it on the web?

    And if portability is a requirement; instead of putting it on a memory stick, how about installing it on an old laptop?

    Feral on
    every person who doesn't like an acquired taste always seems to think everyone who likes it is faking it. it should be an official fallacy.
    the "no true scotch man" fallacy.
  • AldoAldo Hippo Hooray Registered User regular
    edited May 2007
    Ugh, took her long enough to get back at y'all:

    JHunz wrote:
    "Believe it or not, it's quite feasible. Webserver on a Stick is a prepackaged and preconfigured PHP/MySQL/Apache installation that is quite easy to set up and use. I found it while I was writing and testing a web site for work."

    Niiice X3 -favorites-
    Feral wrote:
    Which is more important: fitting on a memory stick or having it on the web?

    And if portability is a requirement; instead of putting it on a memory stick, how about installing it on an old laptop?
    It wouldn't necessarily have to have tohave a full working version on my flash drive to be transportable. We do have a computer at the farm, so if there's a way to work it so that the bulk can be stored on it and just cart back and forth the updated information, that would work too. Unfortunately, the computer at the farm is certainly not some sort of peak performance variety machine @[email protected]

    But to answer your question, it's really a mix of both. With it on the web, everyone involved can access it from home and from the Farm in Canada, but that leaves out the farm in Washington, while focusing on physical transportability keeps things in check at my house and at the farm here, but limits everyone else and the second farm.

    Aldo on
  • mindlarmindlar Registered User
    edited May 2007
    Honestly the best thing you can do is hire a professional to do this for you. Unless your friend intends to learn how to program and design a database on their own, this is likely to never get done. The analogy that one of the previous commenters made about building your own addition vs. hiring a contractor is especially apt. A professional will be able to make something for your friend faster, more efficient, and cheaper than your friend doing it by herself.

    Your friend has done a lot of good stuff in coming up with requirements capture, some UI design, and a rough guess as to what data is important. My gut instinct is that you could get a software contractor to make this for her within a few weeks at a cost of around $10k. The downside to this approach is that your friend won't be able to make changes herself.

    Alternatively your friend can spend a few months trying to figure out how to do it herself and take up to a year to build it. She will then be able to maintain it herself, though it is likely to be strung together by shoestrings and frustration levels will be high.

    mindlar on
  • PheezerPheezer Registered User, ClubPA regular
    edited May 2007
    This is no small project. It would be intimidating to take on even knowing a thing or two about databases, and it'll take time to properly plan and implement this. No one is going to do this in a weekend though, especially not an amateur.

    Pheezer on
    IT'S GOT ME REACHING IN MY POCKET IT'S GOT ME FORKING OVER CASH
    CUZ THERE'S SOMETHING IN THE MIDDLE AND IT'S GIVING ME A RASH
  • AldoAldo Hippo Hooray Registered User regular
    edited May 2007
    I'll pass it on, she is probably inclined to do it herself, so I would appreciate if you'd help her out instead of telling her it is too difficult for her.

    She knows it's not a walk in the park.

    Aldo on
  • PheezerPheezer Registered User, ClubPA regular
    edited May 2007
    There's such a thing as being realistic. It would not be good advice to suggest that this is in any way within the realm of an amateur project. If she has the next year or two to learn everything she needs and start and re-start the project a half dozen times over to get it right, then yeah, she can do it.

    Pheezer on
    IT'S GOT ME REACHING IN MY POCKET IT'S GOT ME FORKING OVER CASH
    CUZ THERE'S SOMETHING IN THE MIDDLE AND IT'S GIVING ME A RASH
  • FeralFeral MEMETICHARIZARD interior crocodile alligator ⇔ ǝɹʇɐǝɥʇ ǝᴉʌoɯ ʇǝloɹʌǝɥɔ ɐ ǝʌᴉɹp ᴉRegistered User regular
    edited May 2007
    pheezer FD wrote:
    There's such a thing as being realistic. It would not be good advice to suggest that this is in any way within the realm of an amateur project. If she has the next year or two to learn everything she needs and start and re-start the project a half dozen times over to get it right, then yeah, she can do it.

    Exactly.

    The only reason to do this project herself is if she already had a desire to learn programming anyway. If she had no desire to learn programming before deciding that she wanted a database, then doing it herself just for the sake of doing it herself is rather silly. As I said previously, it's like picking up a hammer and nails and adding a wing to your own house yourself. Unless you educate yourself on the best practices and established guidelines for building a house, you may end up with something that threatens to fall apart at a moment's notice.

    But if the idea of learning to develop web applications sounds fun and exciting to her, and if she thinks it's a skill she might use in the future, then doing it herself is an option.

    The very first thing to do if she really wants to do this herself is to buy an introductory book on building databases for the web. I'd say that the place where most beginners screw up is they don't structure their database correctly. I can't emphasize this enough: the challenge here is not just to learn the technical skills necessary, but to learn and follow the best practices as well. Any 12-year-old can build a website, but building it in such a way that won't make you tear your hair out six months later when you need to add a database field (when your previous design decisions that you made at 11:30 pm on a Thursday are no longer fresh in your short-term memory) is harder than it sounds.
    Aldo wrote:
    Feral wrote:
    Which is more important: fitting on a memory stick or having it on the web?
    But to answer your question, it's really a mix of both.

    Yeah, these are two contradictory goals. I'm not saying you can't do both. It is possible, it just adds to the complexity significantly. You're going to have to set up some way to synchronize the offline copy of the database with the online copy of the database, which, if you don't know what you're doing, can be a recipe for catastrophe.

    Feral on
    every person who doesn't like an acquired taste always seems to think everyone who likes it is faking it. it should be an official fallacy.
    the "no true scotch man" fallacy.
  • DrFrylockDrFrylock Registered User regular
    edited May 2007
    If Access doesn't fit the bill, consider FileMaker Pro seriously. FileMaker has a much easier interface than Access and is certainly one one-hundredth the complexity of building a custom Web application. It also runs stand-alone. Issues would be the images (which I think FM can probably handle) and the data synchronization.

    Double-good, FileMaker has an "instant web publishing" option that will basically throw the database UI up there on the Web for free. No messy coding.

    Triple-good, FileMaker has a "FileMaker mobile" version now that basically lets you stick your filemaker database on a mobile device and then sync up later when you're back online.

    I built a big FileMaker database back in the 1999 to run a store's point of sale system. They do $3-4 million a year in business and have thousands and thousands of customers in there. They're still using it, or an evolved version of it anyway. Performance is fine.

    Seriously, people, I don't understand you sometimes. Simple problem -> simple technology. PostgreSQL and PHP? Are you serious? In FileMaker, I could have a basic database up and running before you even got that stuff installed. The interface would be better than anything you'd devise, too, considering Web browsers are shitty interfaces to databases unless you're a master of AJAX.

    DrFrylock on
    Pheezer wrote: »
    I would strongly recommend reading DrFrylock's post thoroughly and considering all of his points individually.
  • AldoAldo Hippo Hooray Registered User regular
    edited May 2007
    Feral, do you have any recommendations on literature?

    *edit: oh, thanks DrFrylock.

    Aldo on
  • FeralFeral MEMETICHARIZARD interior crocodile alligator ⇔ ǝɹʇɐǝɥʇ ǝᴉʌoɯ ʇǝloɹʌǝɥɔ ɐ ǝʌᴉɹp ᴉRegistered User regular
    edited May 2007
    Aldo wrote: »
    Feral, do you have any recommendations on literature?

    I don't, sorry.
    And DrFrylock, that sounds awesome.

    Feral on
    every person who doesn't like an acquired taste always seems to think everyone who likes it is faking it. it should be an official fallacy.
    the "no true scotch man" fallacy.
  • PheezerPheezer Registered User, ClubPA regular
    edited May 2007
    DrFrylock wrote: »
    If Access doesn't fit the bill

    As someone who has worked with Access extensively I'll say right now that Access is completely inappropriate for this project. You'd have to design a web front end that would access the db using ODBC queries, and then you'd have the classic "Access shits its pants if 10 people make a request at once" problem. If you can trick it into even handling 10 requests at once, it's not exactly designed around the multi-user paradigm. So you'd be setting up session handling and request queuing to make it run reliably, and then it'd be dead slow. And none of those things are easy for someone who's never done any web programming before to get working.

    If you're going to use a Microsoft technology for this, SQL Server Express paired with ASP .NET would be the way to go, but then you're still stuck using IIS and I don't believe there's a free way to do that. The MS route is going to be rather expensive, and from what it sounds like, FileMaker's probably a much better choice anyhow.

    You're still stuck with the fact that it's not easy for a beginner to wrap their head around how databases "work" and how to set one up correctly, and you're also still quite stuck with the fact that they'll need to figure out some coding to automate the import/export process to work with the memory stick and all that, but it sounds like the most do-able option.

    It's still going to take an unreasonable period of time for someone with no experience or education in the field to put together something functional and reliable, though.

    Pheezer on
    IT'S GOT ME REACHING IN MY POCKET IT'S GOT ME FORKING OVER CASH
    CUZ THERE'S SOMETHING IN THE MIDDLE AND IT'S GIVING ME A RASH
  • FeralFeral MEMETICHARIZARD interior crocodile alligator ⇔ ǝɹʇɐǝɥʇ ǝᴉʌoɯ ʇǝloɹʌǝɥɔ ɐ ǝʌᴉɹp ᴉRegistered User regular
    edited May 2007
    Another nail in Access' coffin is that Access' image-handling features (if you can call them that) suck. You can either embed the images in the database directly (which, for some reason that Microsoft only knows, will add insane amounts of overhead to the mdb) or you can link images in a file folder to records in the db (which means you'll have a folder full of image files that have to be managed seperately).

    That said, Access has undergone a significant redesign for 2007; so much so that many of the criticisms levied here no longer apply as of that version. However, I haven't used it enough to know if Microsoft has introduced an entirely new set of problems (as they tend to do) so I can't recommend it yet.

    Feral on
    every person who doesn't like an acquired taste always seems to think everyone who likes it is faking it. it should be an official fallacy.
    the "no true scotch man" fallacy.
  • DrFrylockDrFrylock Registered User regular
    edited May 2007
    Note that Filemaker is not magic either, by the way. It's just substantially easier than the alternatives. Setting up the database properly will still require an understanding of relational database schema design to get it right. Additionally, the last time I used FileMaker, all the relational database stuff was there but it worked differently than in a traditional SQL database, since you effectively design(ed) the database using a UI, rather than the other way around. You can still do everything you need to do, it's just done in a different way. This may have changed in later versions.

    DrFrylock on
    Pheezer wrote: »
    I would strongly recommend reading DrFrylock's post thoroughly and considering all of his points individually.
  • AldoAldo Hippo Hooray Registered User regular
    edited May 2007
    Okay, I suppose this will end the thread, friend says she thinks she can manage and she'll decide how to do it. Thanks for all the advice. :^:

    Aldo on
  • LewishamLewisham Registered User regular
    edited May 2007
    Aldo wrote: »
    Okay, I suppose this will end the thread, friend says she thinks she can manage and she'll decide how to do it. Thanks for all the advice. :^:

    ...

    Let us know how she gets on with that later on then O_o

    Lewisham on
This discussion has been closed.