Forum Moderators: phranque

Message Too Old, No Replies

Advice related to database design

         

Romans837

5:30 am on May 3, 2004 (gmt 0)

10+ Year Member



Hey everyone. I'm embarking on creating a website and want to get some advice related to its creation. I already have the front-end design done and it's great but now I'm looking to do the back-end development and realize that I don't possess the technical expertise to do it myself. I'm planning to contract it out but want to make sure I'm heading down the right path.

My site will be a directory of audio and video learning resources from a number of different providers. When a user comes to the site they will have the option to go into any of a number of categories (and sub-categories) or to search from among the entries. We expect to have several thousand titles available with each title having its own page showing a picture of the title, information about it and displaying a link to a third-party website where the visitor could purchase the title. I would also like to allow visitors to the site to rate and/or review titles.

Essentially what I'm envisioning for the technology is "Amazon lite". It obviously won't be as robust and full-featured as what Amazon has developed but I think the general functionality and look and feel will be somewhat similar. Having said all this, I have the following questions:

1. What approximately would something like this cost to have developed? Part of me thinks that this should be fairly inexpensive given the number of different sites currently doing something similar. Maybe there's even an off-the-shelf solution available (if anyone can think of one, please let me know). On the other hand, maybe this is more complex that I imagine.

2. What would be a good route to go down to get it developed? I've sourced a few projects recently through ELance and have been very happy with the results. However, I'm a bit nervous to do that with this project given its potential scope. I have a few "local" people that could probably do this.

3. Any thoughts on the best platform for developing something like this in. My gut tells me MySQL/PHP might make the most sense and be the most cost-effective. However, I haven't done much development work so I'm not entirely sure?

Well, I have other questions but for now I'll leave it at that. Thanks in advance for any help with this. I really, really appreciate it.

txbakers

5:54 am on May 3, 2004 (gmt 0)

WebmasterWorld Senior Member 10+ Year Member



Hi and welcome to the Webmaster World.

Here are some quick answers to your questions:

1) hard to tell. If I were bidding I'd estimate it to be a few thousand dollars. You have a DB to create, plus you need to write a way to get the data in. DB design doesn't come cheap.

2) ELance is OK as is guru.com or just post something here on the Commerical Exchange. You'll get lots of leads.

3) mySQL/PhP is fine, as would any technology. I'm confortable in ASP so I would use ASP. All would get the job done.

raywood

1:06 pm on May 3, 2004 (gmt 0)

10+ Year Member



Database design for a serious business application is not trivial. Writing code to provide the user interface is the easy part. The up front conceptual design is the critical part. This is where experience and skill make a difference. It's also what causes most of the pitfalls and frustrations after the design is released.

I do lots of database design for my clients. I find it difficult to convince them that we must allocate 50 percent of the schedule to defining the data structures before we start coding. Your code can be rock solid, but if it's talking to poorly designed database, you're still in trouble.

Hire a pro and expect to pay a decent price. I agree with Txbakers. A few thousand bucks for a mySQL or SQL server database.

Romans837

3:02 pm on May 3, 2004 (gmt 0)

10+ Year Member



Thanks guys. I didn't anticipate it costing much less than a few thousand dollars so that does sound about right. On the other hand, I was hoping that it would be much over $5K either.

The data for the database is currently sitting in an Excel spreadsheet and would need to be ported into the database. In addition, there would need to be some sort of GUI to get additional data into the database and make additions, deletions and modifications.

One of my key concerns is making sure that a proper foundation is laid. Eventually this may become an e-commerce site and so I want to make sure that whatever design is used will support that. If either of you (or anyone else!) has any other suggestions as to things I should be thinking about, feel free to let me know.

Thanks!

danieljean

4:41 pm on May 3, 2004 (gmt 0)

10+ Year Member



I am migrating a MySQL shopping cart to PostgreSQL. MySQL is not standards compliant, nor do the stable versions offered by hosting companies have transactional support.

A short explanation of why transactions are useful. You can "commit" an order only after:
-the cart is emptied
-items were taken out of inventory
-the order has been recorded

If any step messes up, nothing is written to the database- which can save major headaches for customers (losing their cart without an order placed), and yourself with data integrity (it's only taken out of inventory if it's recorded!). Sure, you could erase carts after an order is placed, but that doesn't handle inventory...

I've posted links to this site numerous times when people ask about database design... but it's solid, and well worth a read:
[phpbuilder.com...]

Doing good normalization is crucial for manageable data, but with MySQL, some of those queries get far more difficult that they need to be. So I would recommend starting with PostgreSQL from the start if you are considering e-commerce. It is also free and open-source, however only runs natively on Linux at the moment.

If you are going to farm this out, do post it here before going to elance, so I can place a bid! :)

Romans837

6:02 am on May 5, 2004 (gmt 0)

10+ Year Member



Thanks for the reply. Another thing I'm trying to figure out is a user management system for the site. From the people I've talked to so far, it doesn't seem like designing the database I mentioned in the earlier post is going to be extremely difficult. However, I'm also going to have discussion boards and e-mail newsletters on the site and ideally I'd like to have visitors to the site have a single user account with which they can post to the discussion board, manage newsletter subscriptions and rate and review products in the directory.

Any thoughts on the additional complexity this would bring? Just adding the discussion board (like vBulletin) is a piece of cake. Tying it into the rest of the site doesn't seem so easy. Thoughts?

danieljean

12:12 pm on May 5, 2004 (gmt 0)

10+ Year Member



If you can figure out vBulletin's authentication scheme, it could be simple. If it places a username in the session, your main script could also do that when users log in to the site.

Romans837

5:40 pm on May 5, 2004 (gmt 0)

10+ Year Member



Yeah, I was thinking something along the same lines today. Although down the road a more robust user management solution might be necessary, this might get me through the next year or so.