<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Large Aquarium Database ?</title>
	<atom:link href="http://aquarium-fishtalk.com/large-aquarium-database/feed/" rel="self" type="application/rss+xml" />
	<link>http://aquarium-fishtalk.com/large-aquarium-database/</link>
	<description>Aquarium sharing blog and videos</description>
	<lastBuildDate>Fri, 25 May 2012 06:28:58 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
	<item>
		<title>By: oracle128au</title>
		<link>http://aquarium-fishtalk.com/large-aquarium-database/comment-page-1/#comment-40410</link>
		<dc:creator>oracle128au</dc:creator>
		<pubDate>Sat, 13 Mar 2010 02:59:17 +0000</pubDate>
		<guid isPermaLink="false">http://aquarium-fishtalk.com/large-aquarium-database/#comment-40410</guid>
		<description>I&#039;m sorry, but are you both a DBA AND a Marine Biologist? If not, why are you taking on both roles?
Here&#039;s how it works in the real world: you have a client/customer, that&#039;s the aquarium, who have certain needs for this database. Then you have the consultant, that&#039;s you, who interprets these requirements and produces a functional specification. Then you have the DBA, which in this case is also you, who goes and designs and creates the database based on the requirements and functional spec.

But here, you&#039;ve gone right ahead and jumped into trying to design the database, without knowing what the requirements are. Bad news. You can design your database as well as you want, and do as much research into aquariums as you can, but end of the day, I guarantee 100% that what you come up with isn&#039;t going to fulfil all of the client&#039;s needs. And, the needs of one aquarium aren&#039;t necessarily going to match the needs of your aquarium.

All you have right now is a tiny list of fields and possible DB entities that you THINK might be needed for an aquarium database. Here&#039;s a quick example: you think you need the quantity and type of fish. That&#039;s it. Really? You don&#039;t have to store details on the species, sub-species, common name, scientific name, family, list of fish that go well with it, list of fish that should be together, whether they&#039;re saltwater or freshwater? These are just a couple of fields/relationships I can come up with off the top of my head.

We could do this all day, but when it comes down to it, you really have no idea what level of detail is required for this thing, do you? Does the client have an existing database you have to hook into, or migrate across from, that might compromise your design? Is there a HR or payroll database you might need/want to use for staff lists?

As I said, first step is to find out what exactly the requirements are. Double check them with the client. Build a prototype, and look for any potential problems. Make some suggestions. Go back to the client and check again, I guarantee there will be more and/or different requirements. From there, it should be a piece of cake to figure out the ERD. With the ERD, build your DB. DON&#039;T build proper forms or reports yet - whip up some quick examples (use the wizards if you want to), show them to the clients, they will come up with more fields that they need. Some of these requirements may even be new entities, but 99% of the time it won&#039;t change your existing ERD, only add to it, so it should be an easy job from here.

Once you&#039;ve got all that, THEN you can start working on reports, form design, and other end-user stuff. Here&#039;s some more tips:
-Make sure to leave your forms flexible - leave room for more fields, and if it makes database design sense to use multiple forms for entering something, do it, even if it doesn&#039;t make sense as GUI-wise. This way you won&#039;t clutter your forms when you inevitably have to add more fields and finding they won&#039;t fit.
-Same thing with reports - you&#039;d be surprised how few fields you can include on even a landscape-oriented report, when you have to cater for each column to its maximum possible width. Flexible and minimal is good - find out what info they want on a report, and don&#039;t include anything they don&#039;t ask for. Adding a form front-end to reports allows users to filter or customize them as needed - they will want that.
-Just because the client doesn&#039;t ask for something the first 10 times you ask them, doesn&#039;t mean they don&#039;t want it. Preparing for it with a good, flexible design means less work for you.
-I&#039;m assuming you&#039;re doing this work as a contractor. So when done, leave them your details. I bet you you will be getting repeat business as they find stuff that doesn&#039;t work are they want more functionality. BUT, DON&#039;T get caught into a trap of having to provide free support for them for all eternity. You might find they are constantly coming at you with small bugs/changes, and you&#039;ll find it&#039;s not even worth charging them for it. The first couple times, that&#039;s ok. After that, make them bundle up their bug reports/changes, and deal with them all at once as part of separate, paid contract work</description>
		<content:encoded><![CDATA[<p>I&#8217;m sorry, but are you both a DBA AND a Marine Biologist? If not, why are you taking on both roles?<br />
Here&#8217;s how it works in the real world: you have a client/customer, that&#8217;s the aquarium, who have certain needs for this database. Then you have the consultant, that&#8217;s you, who interprets these requirements and produces a functional specification. Then you have the DBA, which in this case is also you, who goes and designs and creates the database based on the requirements and functional spec.</p>
<p>But here, you&#8217;ve gone right ahead and jumped into trying to design the database, without knowing what the requirements are. Bad news. You can design your database as well as you want, and do as much research into aquariums as you can, but end of the day, I guarantee 100% that what you come up with isn&#8217;t going to fulfil all of the client&#8217;s needs. And, the needs of one aquarium aren&#8217;t necessarily going to match the needs of your aquarium.</p>
<p>All you have right now is a tiny list of fields and possible DB entities that you THINK might be needed for an aquarium database. Here&#8217;s a quick example: you think you need the quantity and type of fish. That&#8217;s it. Really? You don&#8217;t have to store details on the species, sub-species, common name, scientific name, family, list of fish that go well with it, list of fish that should be together, whether they&#8217;re saltwater or freshwater? These are just a couple of fields/relationships I can come up with off the top of my head.</p>
<p>We could do this all day, but when it comes down to it, you really have no idea what level of detail is required for this thing, do you? Does the client have an existing database you have to hook into, or migrate across from, that might compromise your design? Is there a HR or payroll database you might need/want to use for staff lists?</p>
<p>As I said, first step is to find out what exactly the requirements are. Double check them with the client. Build a prototype, and look for any potential problems. Make some suggestions. Go back to the client and check again, I guarantee there will be more and/or different requirements. From there, it should be a piece of cake to figure out the ERD. With the ERD, build your DB. DON&#8217;T build proper forms or reports yet &#8211; whip up some quick examples (use the wizards if you want to), show them to the clients, they will come up with more fields that they need. Some of these requirements may even be new entities, but 99% of the time it won&#8217;t change your existing ERD, only add to it, so it should be an easy job from here.</p>
<p>Once you&#8217;ve got all that, THEN you can start working on reports, form design, and other end-user stuff. Here&#8217;s some more tips:<br />
-Make sure to leave your forms flexible &#8211; leave room for more fields, and if it makes database design sense to use multiple forms for entering something, do it, even if it doesn&#8217;t make sense as GUI-wise. This way you won&#8217;t clutter your forms when you inevitably have to add more fields and finding they won&#8217;t fit.<br />
-Same thing with reports &#8211; you&#8217;d be surprised how few fields you can include on even a landscape-oriented report, when you have to cater for each column to its maximum possible width. Flexible and minimal is good &#8211; find out what info they want on a report, and don&#8217;t include anything they don&#8217;t ask for. Adding a form front-end to reports allows users to filter or customize them as needed &#8211; they will want that.<br />
-Just because the client doesn&#8217;t ask for something the first 10 times you ask them, doesn&#8217;t mean they don&#8217;t want it. Preparing for it with a good, flexible design means less work for you.<br />
-I&#8217;m assuming you&#8217;re doing this work as a contractor. So when done, leave them your details. I bet you you will be getting repeat business as they find stuff that doesn&#8217;t work are they want more functionality. BUT, DON&#8217;T get caught into a trap of having to provide free support for them for all eternity. You might find they are constantly coming at you with small bugs/changes, and you&#8217;ll find it&#8217;s not even worth charging them for it. The first couple times, that&#8217;s ok. After that, make them bundle up their bug reports/changes, and deal with them all at once as part of separate, paid contract work</p>
]]></content:encoded>
	</item>
</channel>
</rss>

