Drupal and Postgres for complex search site

We encourage users to post events happening in the community to the community events group on https://www.drupal.org.
mirefoot's picture

I am new to the group but a long time developer of CMS usually based on PHP/MySQL.

I have a new project to manage, which is going to need to be driven by a postgres database due to a second process running on the same database.

The site will require all of the below and many smaller attributes and I need to know whether there are suitable developers who can work this out with a Drupal/Postgres build or whether this is better developed outside of an existing CMS such as Drupal, Wordpress, Joomla et al as a bespoke CMS project based on a postgres database.

It is a parts locator website that has at any one time over 600,000 parts listed. these parts are searchable and filterable initially by the standard Make, Model, Year and then by 6 or 7 more narrow choices such as body type, etc.

Once a part is identified, right wing mirror for a bmw 325 from 2008 for example, then the vehicle wreckers or other site users with the right to list can be contacted through the site.

If a part is not discoverd for a particular search then the user has the ability to send requests to all vehicle wreckers who have identified in their profile that they deal in that vehicle type.

The site has 3 or 4 different levels of user, and all actions by each user, such as searches carried out, requests made should be stored as a history, both for the site user to see and the site administrators to see and analyse.

The site also limits the number of parts each wrecker can list publicly at any one time, but can allow him to choose from his entire stock that he has uploaded, the max number of parts he is allowed to display according to his membership level.

Finally the site also provides specifically formatted files that are loaded directly into software to create the magazine that is sold throughout Australia.

Finally the site has to integrate a second database. this database knows which parts are interchangebal between vehicles. So a search for a wing mirror for a bmw 3 series will initially return all the bmw wing mirrors listed, then the interchange database will provide the part details for identical parts that might be from other manufactureres or from other bmw ranges. So, as above, the 5 series wing mirror may be a direct interchange for the 3 series wing mirror. The site search should then display these parts as iff they were the 3 series wing mirror assembly as well.

As you can see the site is quite specific, the design and wireframes are quite complex but well advanced and a preliminary database minimum structure has been defined, but is not restrictive if deemed to be unsuitable.

The current database of current and historical parts runs to about 8GB at the moment but is 450 odd tables of which only around 200 are used. The original site was developed by a very poor developer and the administration screens I have seen can take 5 minutes to load. The site owner is extremely keen that the site is quick to use both for the admin and the site user. I envisage that ajax will be used in the search and we have considered an Apache/SOLR server but do not know if this will integrate with postgres.

We will be looking for developers very shortly, but need to know whether this users of this Drupal group belief Drupal is an unnecessary complication or a perfect fit?

thanks for your help.

Comments

Hi, Yes Drupal will work very

gordon's picture

Hi,

Yes Drupal will work very well on Postgres, and this size of the database should not be a problem under postgres. providing your data is structured in a good manor and is indexed as best as possible.

Most of this will need to be custom developed work. For this project I would recommend that you use Drupal 7.x as it has much better postgres support than 6.x and also some of the tools like views will integrate with the other database a little better. Performance will not be an issue, even on extremely poor Drupal sites I have never seen performance that bad.

As for Fit, I think Drupal will be the best fit it you want to use a CMS instead of rolling your own, but I would guess the number of features that would need to be written will require a lot of work that you would not need to do otherwise.

If you want to talk further don't hesitate to contact me via my contact page

Gordon.

--
Gordon Heydon

Agree

rcross's picture

I would agree with Gordon regarding staying with D7. We've just completed a similar project in the Auto industry (its mostly an internal system with their wholesalers/vendors)

There will be quite a bit of custom work there it sounds, so it would be worthwhile analysing the existing software to see if there is much there that could be reused.

Are there other aspects of this site that might leverage other components of Drupal besides the database layer?

Also happy to talk offline as well if you prefer.

Hi

gauravwal's picture

We have a good exp with similar projects in US and UK. We are based in Malbourne

Feel free to drop a line at gaurav@damcogroup.com to discuss in detail.

Regards,
Gaurav
03 9005 7866

Postgres and Drupal works Well

AndrewBoag's picture

Postgres is a great fit with Drupal. We have been deploying almost exclusively with postgres since D5 and have had great success. Not to say there is anything wrong with MySQL, but pre-Drupal, we were very committed to PostgreSQL as open source database of choice.

I agree with my peers above that this sounds like an excellent Drupal project. Sounds like there will be some thought involved in the way that you integrate Drupal with the legacy application/database but this sort of stuff always requires consideration and planning. Certainly Drupal has a long history of integration with a large array of bespoke applications and services. Drupal's standards-compliance, open source qualities often make it the more flexible component of an integration pair.

Best of luck with the project!

Australia

Group categories

Location

Group notifications

This group offers an RSS feed. Or subscribe to these personalized, sitewide feeds: