Scott Hanselman

Community Call to Action: NOT Northwind

May 30, 2008 Comment on this post [82] Posted in Musings | NotNorthwind
Sponsored By

northwind_thumbI'm just sick of Northwind. Sick to death of the Northwind Database. You know, this is the Products, Categories, Suppliers, yada yada yada sample database that you've been seeing in Microsoft demos since the beginning of time. (FYI, the beginning of time was about 1997. ;) )

Why do we use it? Because it's there. Because it's easy, it exists, and it takes two seconds to install. It's full of good sample data that has international characters. It has a few views and a few sprocs and it's wholly harmless.

Now, some folks don't like Microsoft's (often) focus on "Database Driven Development," and I'm basically Switzerland at this point. Consider me neutral because I've done it both ways, both Domain Driven and Database Driven. With an ORM and without. I'm not 100% convinced either way and I like to have choice.

Plus, when I'm showing some technology that is talking to a Database or to POCO (Plain Ol' CLR Objects) I still need good sample data to pull from. Thus, the Northwind Virus continues.

And I hate it with the heat of a thousand suns.

There are others I could use, like AdventureWorks and its variants and specifically the AdventureWorksLT example is pretty lightweight, but still it doesn't quite turn me on.

I suspect, though, that if we (the community) took a few weeks, did some Skype conference calls, assigned some tasks, brainstormed and did it, we could come up with NotNorthwind. The Lazy Web, the Web of Clay Shirkey, .NET Flash Mobs included, could create a sample database, (we can argue about whether to start in the middle or in the db in the first meeting) as well as some good examples of things like NHibernate, LINQ to SQL or Whatever,

Requirements

  • Complex enough to be called Real World but simple enough that someone could "get it" in 5-10 minutes
  • In a familiar Domain Space that makes sense to folks all over the world
  • Has a decent amount of sample data with strings that are more than just [a-z|A-Z|0-9]

Deliverable(s)

  • Have a single .SQL file that one can run and immediately get a working database
  • Sample Code for any of a number of Database access patterns, ORMs, whatever. This might require a few subtle versions.

I'm making http://www.codeplex.com/notnorthwind and I want:

  • A Project Manager (probably best if it's not me)
  • Modelers, Sample Code Writers
  • Sample Data Creators
  • Documentation Person
  • Release Manager

Who's with me? Leave a comment with your CodePlex Username, Skype Username, your TimeZone offset, and your level of interest and let's do a Skype call to kick this off and be rid of Northwind. Also, if you think this is a stupid idea, why?

Oh, by the way, if you're at TechEd US this next week, be sure to say Hi if you see me, and let's talk about this project, because most of my demos at TechEd 2008 are <gulp> Northwindian in their heritage.

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook twitter subscribe
About   Newsletter
Hosting By
Hosted in an Azure App Service
May 30, 2008 5:28
I feel the same way. I have to stifle a groan whenever I hear the word "Northwind" come out of presenter's mouth. I've even jokingly said that Microsoft ought to have an internal metric for new technologies called "TTN", "Time to Northwind." In mathematical terms:

Product Coolness = 1 / TTN

What do you think? ;-)
May 30, 2008 5:34
I'd be interested, although Skype is blocked from the office, so the call might be difficult. I'm jmeyer43 on both Skype and CodePlex and in the US Eastern time zone.

In Orlando about 20 minutes from TechEd actually. I'll be there on Wed. only, got a day pass for hosting an INETA Birds of a Feather session (the one about user groups in the last time slot of the evening). I'll also be at InBetween Sunday for Russ' Tool Shed (going both days had a low wife acceptance factor, since one of us has to stay home with the kids... yeah, it's cool being a .NET dev married to another .NET dev).
May 30, 2008 5:35
Scott,

I think I have a winner here: Lots of sample apps out there (for Rails, a few I've seen for ASP.NET and MVC, etc) are simple Blog engines.

Maybe the new de-facto sample DB should be a simple blog db. It seems to cover the gambit of things and could easily be used either for domain-driven or model-driven (DB-driven). It could contain I18N data, secure data (passwords), etc.

Whatchathink?
May 30, 2008 5:37
Brian, that rocks. I'll use that at TechEd!
May 30, 2008 5:41
Hey Scott

I'm in. jfiorato for Skype and Codeplex. Happy to help with coding/modeling, project management, or sample data.

I don't think it's a stupid idea. I'd love to see what percentage of databases out there actually have a table called "Products" or "Orders". 20% maybe?

Seems like it could be difficult to gather all the folks required to do things other than modeling and coding. But, I'm willing to give it a whirl.

Jim
Jim
May 30, 2008 5:53
Scott,

I'd love to be involved in some way. I'm not sure how best I could contribute, but I will help out where I can. I have some decent SQL and C# skills as well as an overall sponge-like demeanor when it comes to picking up new skills.

I'm on CodePlex and skype as jerhinesmith.

Justin
May 30, 2008 5:55
Forgot to add that I'm on eastern time.
May 30, 2008 6:04
Not that I have any great love for Northwind, but you don't really say why you hate it so badly. In fact you give a number of reasons why it is useful: small but not too small, easy to use, internationalized data, wide range of related samples. And after all, its only a sample. Why do you want to spend the time and energy to replace it when it seems to work pretty well for what it does?
May 30, 2008 6:04
Scott, This is long overdue. What's wrong with starting with AdventureWorksLT? I'm glad to hear you'll be at Tech Ed.

++Alan
May 30, 2008 6:25
My first thought was if you were to do this, a blog database might be a good example to start with as it's pretty easy to understand.

That said, I'm a fan of AdventureWorksLT - small enough I don't mind including it in a download, but enough tables and data to make an effective demo. It may not be the way I would design a database, but it's quirks make it great for demos to show off complex queries (like using LINQ to SQL to pull products with their model descriptions).

I've not used it yet, but the fact AdventureWorks comes is a few versions (include a version with a data warehouse) is also a plus.
May 30, 2008 6:47
Sorry to be boring but the big advantage of the crappy sample DBs is that they're all legally approved, so all the names are those of people who agreed to be in there, any sample images, company names etc...are the same (same reason why Contoso is in every other MS sample, it's 'approved'). While it'd be great for the community at large to have a new sample DB, we MSfters would probably not be able to distrubute it with samples. It would be awesome if we could get a new one approved to distribute though!
May 30, 2008 6:50
I certinally think that this idea has merit. Personally, I favor the AdventureWorks variations when giving demos as well. To be honest, my least favorite thing about Northwind (and Adventure Works to a slightly lesser degree) is that the data is rarely meaningful to my audience. The presentation is not about the data you are displaying, but, rather, the way you got that data to the page. However, I have found that the less amount of abstraction that the viewer has to deal with, the better (even when that abstraction is just the data). So, my suggestion is that, when considering the data, pick something a bit more neutral and that would have more interest, if at all possible.

To be honest, the Blog database is a good suggestion, if it can be complex enough.

+1 on the single SQL file. There is nothing better than being able to spin up a DB in a heartbeat (or to regen it in a pinch).

+1 on the sample code. Nice way to grok other methods!
May 30, 2008 6:52
To keep it non-trivial, I'd like to see something in this new database that's highly-normalized, in such a way that inserting a single "entity" means inserting and/or updating records in several tables. That's something that a simple "drag onto a LINQ to SQL design surface" demo can't capture very nicely.

A blog database could work, or even the old "CD library" idea where you have artists, genres, albums, songs, playlists etc. An example of normalization there might be a child table of artists for solo artists, which had extra fields for personal information like date of birth or sex. So inserting a single "artist" into the db (which might be a solo artist or a band) could mean inserting into two tables at once.

ps. This is the first time I've ever left a comment anywhere using my new MyOpenID identity. Hope it works! :)
May 30, 2008 7:05
Hey Scott,
I'm really glad you thought of that NotNorthwind thing, i've been working as an instructor since 3 months, and i have to admit, i find it quite easy to get a nice demo using northwind, still i hate to do the very same thing over and over again, I find it lousey. Anyways, that's my codeplex user name "Galilyou". Hope i can provide as much assistance as i can .. regards !
May 30, 2008 7:24
What about metadata-based databases? Quite often you have the need to have vertical rather than horizontal tables. What if we made sure that was covered too?
May 30, 2008 7:28
Short (True) Story: Back in the day, our 'Z' sample application for the Windows Media Center SDK (see http://blog.mediacentersandbox.com/IntroducingTheZSampleApplication.aspx) was named 'Ekko' because we wanted a nicer, cooler brand than the regulars at Microsoft (like Contoso). The logo was really, really nice (think of invoking the word 'echo' with the juxtaposed k letters). It was nixed by the powers that be due to possible branding / trademark issues. The very first alternative suggested by them was (wait for it)...

Northwind

Aaaaaaaaiiiiiiiiiieeeeeeeeee!!!!!!!!!

So we gathered around coffee and decided on 'Z' -- it was way cooler than 'Northwind' and because it's a letter of the alphabet there weren't any thorny issues.

But yeah, count me in...

Codeplex=CharlieO
Skype=retrosight
May 30, 2008 8:11
Let's go back to pubs! :)
May 30, 2008 8:26
David Nelson - Perhaps because Northwind evokes Access 3.0? I dunno. It's contrived, creeky, simplistic, boring, lame. I mean, it has a View called SalesFor1997 or something. I think it makes MSFT look bad, but it makes presenters, myself included, look bad.

Yes, AdventureWorksLT might be a good starting point, but it exists already, so I guess, point taken, it exists, and no need to "fix it."

Scott Galloway from MSFT - I knew you'd be here eventually to squash my idea. ;) Seriously, I suspected that we'd come up with something NOT producty like a game or a blog, so we're still cool. We can use the names from Northwind for blog commenters, we can use public domain NYTimes stories or Guttenburg books for blog posts, and categories are just that. Then I'll run it through legal. Plus, we don't have to distribute it, it's owned by the community! Bam!

Nathan - Why do you think a blog would be hard? Posts, Comments, Categories, Tracking (referals, trackbacks), config, what else?

mabster - Yes, I like that idea.

Shane - You mean a database of tables representing metadata? That is a scenario I've seen, but rarely. Seems not-mainstream. Am I wrong?

So, here's the ideas so far:

* Blog
* Media/Library (like the Delicious Monster app) including games, cds, books, etc.
* Game - MUD?
May 30, 2008 8:28
If we can't get a new Northwind, why not just adjust the current one?
May 30, 2008 8:36
Redgate produce a data generator which is rather nice. It might be worth look at once the schema is in place for filling the tables.
May 30, 2008 8:40
Hi Scott,

This is really a great idea. I am ready for the project as Modelers and Sample Code Writer. I can't access skype from my office but I am always available on live messanger.

I will create skype id in the evening and let you know.

Messanger ID: yaneshtyagi@hotmail.com
Codeplex Id: yaneshtyagi
Timezone: India (+5:30)
May 30, 2008 9:09
Hi Scott,

I'm down for helping. And @scott and @shane: Microsoft Dynamics is based on that principle. There are only about 10 tables in the database.

Here's my info.

Codeplex: darren
Timezone: MST (-7:00)
Skype: clanaota
May 30, 2008 9:15
I think part of the appeal of Northwind is that it's a known quantity, a common ground, something Joe Coder has seen and will see Microsoft sample code running on. I get your point that the old data is ugly, although an update script to add 10 years to all dates would cure that...

AdventureWorksLT seems to have cured most of the Enterprisitis in AdventureWorks, and you don't explain what you don't like about it.

I guess my question is, is there a real reason other than that you're bored of Northwind? Is this something we could get "blessed" so we'll see official sample code on it, or is it just something that presenters who are bored with Northwind will use?

And can you please call it AdventureWind?
May 30, 2008 9:16
How about the subtext database?
May 30, 2008 9:42
What next? "Hello World" isn't good enough for you? Snob!
May 30, 2008 9:48
Northwind is much older than 1997. I think it started with Access (or FoxPro?) back in the early 90's.


May 30, 2008 10:22
We don't a need a new one! Pubs FTW! :-)

@Shane Milton: "What about metadata-based databases?" You're not talking about a database-within-a-database are you?
"For want of a better term, it is usually called ‘One True Lookup syndrome’ or OTLS. It is in the same league as the rather more severe affliction ‘EAV disease’ (Entity Attribute Value). It is like measles or Mumps in that it afflicts the sufferer just once and he, or she, is thereafter immune."
Phil Factor, When the fever is over, and one's work is done


May 30, 2008 10:45
Your legacy is sealed dude. You can't possibly take down Northwind. No one can! It's the finger in the damn, our Typhoid Mary, Mort's Raison D'etre.

I say screw databases - be cool and use Twitter's XML API with Astoria or something.
May 30, 2008 11:08
I agree with Rob. Relying on Twitter's API is a sure way to make your demo successful... by giving you an excuse when it bombs.
May 30, 2008 11:11
I think it's a great idea, Scott. I've been tired of the same old Northwind data for a long time myself. I love the 'blog' idea for it's 'web'-ishness, but the 'media library' is more versatile, because it can easily be used in a non-web environment. The target audience for such a db should not be limited to the web. Anyways, here's my information;

Time zone: GMT +1 (West Europe)
Codeplex: WouterDemuynck
Skype: demuynckwouter
May 30, 2008 11:29
Hey Scott,

I'd like to get involved in this too. While there seems to be a few votes for basing it on a blog; I'd like to throw soe support behind a game. Say something like poker? Although I'm not sure it would internationalise very well. Chess might work better, but I'm not sure the demo apps would be exciting enough - check out http://www.shockwave.com/gamelanding/emailchess.jsp.

Since it's a community effort we could do the naming with our tongue firmly in our cheeks - for example "Rainforest" for an online retailer, "FaceSpace" for a social networking site or "BirdSong" for the previously mentioned messaging service. While you don't want something too cheesy, I think something like that could work.

Another idea would be the db behind a personalised startpage...

Here are my details:
skype: mclarkeuk
codeplex: mclarke
Timezone: Scotland (GMT)
May 30, 2008 11:54
'ovidiaconescu' on both Skype and codeplex.
My time zone is not realy relevant. Officially I'm GMT+2, but I work as I would be on the East Coast.
May 30, 2008 12:56
This is a really great idea. I'm developing a web based SQL IDE, and I wanted a good "out-of-box" database for demo and testing.

AdventureWorks is ok, but with flaws.

Could NotNorthwind address the following?

- Cross Platform (scripts for Sql 2000, Sql 2005 etc, MySQL, Oracle, PostgreSQL, Firebase etc)
- Multiple data creation scripts (for small, large and huge databases)

I'd happily contribute if so, it's better to share the effort than just developing my own!
May 30, 2008 13:25
Interesting idea Scott. A couple of ideas I have brewing are:

1. Animal shelter system (animals, rescues, tags, etc)
2. Library system (books, check-out, patrons etc)
3. Simple Medical system
4. Gamer tracking system (much like what xbox live is)

I'd love to see a db that makes sense for the web, windows and compact framework worlds (ie. not just for ASP.NET). There's just something about the Blog idea that makes me cringe :-)
May 30, 2008 13:28
I totally agree!! We really need something like this. I have a vested interest in getting this working so happy to spend as much time as required.

Time zone: GMT
Codeplex: Ben2004uk
Skype: Ben2005uk
May 30, 2008 14:24
I also like the idea because i hate this Northwind too much that i prefer to use sample db of my own rather thing using it.
I like the idea of going for sample Media shop having CD's Games, Songs etc rather then blog as i beleive Blogs are still contain Acronames of our field while media thing would be generic and more domain specific.

my skype and codeplex id are gripusa
while my timezone is +1 (Edinburgh/London)
May 30, 2008 16:04
I couldn't agree more.
I've been a C#/SQL developer for several years, and I'd love to help with some development.

I don't have skype though and it's blocked at work anyway, so the only way to contact me is via GoogleTalk

My codeplex id: configurator
Timezone: Israel, GMT+3
May 30, 2008 16:08
Just a thought, but one possible domain that would have a fair amount of potential complexity might be a stock-trading application.

Between watch lists, a crossing-engine to simulate executions, analytics, position management, product lookups, news, etc, there's quite a bit of stuff there.

It can start simple, like a list current positions, but it can branch out provide room for niche examples as needed.
May 30, 2008 16:09
Oh, and you could even hook it into OpenTick for free to get free market data :)
May 30, 2008 16:12
@Scott - I think you might have misunderstood me. I was not saying that a blog would be hard at all. In fact, I meant just the opposite. Typically, blog db's are very simple and could potentially end up being too simple. Although we would want a db that was easy to understand, we want to make sure it is 'real world' enough that it covers a myriad of situations.

Btw, I still think that the blog db would be a good idea simply because it is something that people understand and use quite frequently in one for or another.
May 30, 2008 16:33
Just a blog would be to simple. Do a community-site styled database that includes all you need to get started. Maybe something like:

- Users
- Blogs
- Forums
- Wikis
- Articles
- Tagging-system -- so you can tag almost every other type of "post" in above tables
- Security and permissions

This would make it meaningful to a lot of users, be complex, but not to complex and have some relations. It fills all above list requirements. Just my input.

Thanks
May 30, 2008 16:54
A football DB (soccer in US terms) would be perfect and entertaining, sample data and applications would be plenty. Teams, players of the teams, player history, statistics, matches, ratings, player profiles, fans, forums, stadiums, tickets, team store, team & player pictures, match streams... Possibilities are endless. And it's quite universal, except for the US :)

Something related to sports would be familiar to more people than many business domains, IMO.
May 30, 2008 17:01
I vote for using Rob Connery's Commerce.MVC Model (whenever it's done).

I think it simple but tackles a number of current challenges such as localization, e-commerce, and others. Plus, it's a community project already :).

Right Rob?
May 30, 2008 17:25
sorry, forgot my website.
May 30, 2008 17:30
Northwind's bad because it lets you happily orphan rows. There were a number of blog and messageboard posts about people having problems doing deletes in linq, where they were getting RI errors because it was trying to set foreign keys to null, rather than delete the offending rows. Many referenced Northwind happily letting you do this and orphan data.
As for a metadata based DB, I've worked on a couple, and they work really well in situations where you have to capture standardized data, but what that data is changes from one group to another, and you can let the users set up what they need to capture. It is a lot of work, though. It might be useful for a media database, where what you're capturing differs by media type. (CDs have an artist and song tracks, DVDs have a director, I'm not sure what games would have, other than an ESRB rating.)
May 30, 2008 17:32
I think the blog example is just as tired as the Shape stuff in all the OOP books. Let's be fresh.
May 30, 2008 17:51
I'm in for writing some sample code.

Skype: jim..blanchard (yes 2 ..)
CodePlex: jimindenver
Time Zone: Mountain (GMT -7)

May 30, 2008 18:13
I agree, can we not do a blog engine.

It needs to be a fresh idea but something everyone can relate to. Plus we need to think in terms of the applications going to be using it - do we want to write another blog sample? Or would we want something more interesting to base our demos around.

E-Commerce and ordering systems are out too - Northwind and AdventureWorks, plus the many others.....

I like the idea of a football database, been done before but not done to death. Sure we can come up with something better.
May 30, 2008 18:53
Expanding on and grafting the MVC Storefront idea with the Media Library idea: what about the backend for an iTunes ZunePass store.
May 30, 2008 18:53
One more for the road them, Scott - just to tweak your nose a little :)

I posted here (http://geekswithblogs.net/jwatson/archive/2005/08/31/51790.aspx) about using VPC to get WfW 3.11 going and just for you, here's a screenshot of Northwind circa Access 1.1 (http://www.flickr.com/photos/82888146@N00/38888911/in/set-857251/)
May 30, 2008 19:04
I like the Media Library idea, and I also like the idea of using an electronic medical record (EMR) database: patient, medication, allergy, health issue, provider, etc.

I'm interested in helping with modeling, sample apps, or sample data.

skype: alvinashcraft
CodePlex: alashcraft
TimeZone: Eastern (GMT -4)
May 30, 2008 19:06
Have you looked at the data available for Project REAL (http://www.microsoft.com/sql/solutions/bi/projectreal.mspx)?
May 30, 2008 20:04
I would also like to see a new sample. Hopefully we can find something outside e-commerce. One could say the e-commerce domain, especially the Costumers-Orders, domain schould be nailed by now, since one can find millions of sample code on the Internet.,
May 30, 2008 20:20
I'd vote against a medical record database. Anything that would be reasonable for medical records would be distractingly odd for everyone else. (For example, we store dates as strings AND datetimes. For many things, the patients don't remember the exact dates. Heck, some women from the Middle East don't know the month that they were born in. So we use a string for the "exact" date, and generate a datetime value for when we want to do date math.)
May 30, 2008 20:28
And I hate it with the heat of a thousand suns.


Oh come on Scott, tell us how you really feel...

May 30, 2008 20:36
Mike - I don't think it would have to be a database that could actually be used in those scenarios. You could easily created a simplified EMR schema to use in demos and sample apps. No need to worry about complex date scenarios and stuff.
May 30, 2008 20:48
Will Nancy Davolio be in your database?

May 30, 2008 23:15
Just please, not another "Blog database" as example!!! why all business rules and complexity are concentrated in "let's take an example using a blog"... c'mon!!!!

I like the idea of a media/library database, enough information to use stock, orders and a lot of statistics...
May 30, 2008 23:50
OK, cool, we have MORE than enough people now, probably too many. However, if we can all do just a tiny bit of work, then we've got something.

I think the next step would be to setup a SharedView.com session along with a Skype call. We could do up to 15 people.

I like the Media Library the most as it's very generic and can be as complex as we want to make it.
May 31, 2008 2:25
This sounds like a very interesting project. I would like to contribute as well if you're not already overwhelmed.

codeplex:loudej
skype:loudej
tz:central -6
May 31, 2008 6:08

Rename stuff like SalesFor1997 to SalesFor2008 and NorthWind to LighthouseTraders and you'll have a good database!

I mean It's still a good database for demos. Developers are familiar with it.

I don't understand the urgency for using Skype.
May 31, 2008 8:21
I've always seen you as a voice of reason.. but really... get over it.... there are surely more important things to spend your time on Scott. :)
June 01, 2008 0:27
Didn't someone a while ago post something about 'how to make northwind a properly-designed database' or some-such? Rather than throwing the baby out with the bathwater (here baby = everyone's familiarity with Northwind and bathwater = all the things we can all agree make it a terrible example of database engineering), wouldn't it make more sense just to clean up the troubles with Northwind (Northwind2?) and use that as a basis for a series of demos of different data-access strategies?

I think the 'let's get some smart people together to build different DALs based on differnt data-access technologies all against the same database' is actually a really good one, but I wouldn't personally waste any precious cycles at all on 'inventing' a completely new database model to do this against.

-Steve B.
June 01, 2008 2:57
I think it's a fantastic idea. I wanted to use AdventureWorks for my presentations but the productnames (for one) really get in the way for me. So I fell back on Northwind...

How about a mini IMDB? Could have entries for the movie names and/or summaries in different languages and even charsets (for instance Norwegian, Russian, Hebrew and Japanese), could include images (for instance of Movie posters), linkable to actors, directors, etc. Could be a legal problem with including the images though...

I'm Norwegian myself so I could help supply content in Norwegian (we have the characters æøå) and as a C# programmer I could help with sample code as well. I'm familliar with both MSSQL and MySQL.

Codeplex and Skype: GlennFHenriksen
Time zone: GMT + 1 (Norway)
June 01, 2008 20:08
Hi Scott,

I have created my skype id. This is yaneshtyagi.


I will create skype id in the evening and let you know.

Messanger ID: yaneshtyagi@hotmail.com
Codeplex Id: yaneshtyagi
Timezone: India (+5:30)
June 03, 2008 0:36
Scott, My name is Lohith. I am currently working in Torrance, CA for one our client. My role is of a Technical Lead. I have been on Web world for last 6 years or so. Have been working on the WPF from last 6 months or so. One of the blogs that i keep looking upto is yours. Most read blogs from me is yours and scottgu. It will be a great honor for me to be part of this project. I can be part of the dev team.
My coolplex id : kashyapa.
Hotmail : kashyapa78@hotmail.com
June 03, 2008 6:49
Sorry that I'm showing up so late to this party!

I've conducted about 800 interviews for webdevs, and part of that interview is always designing the schema for a webapp. The two that have been most successful, across multiple cultures, and across multiple platforms, have been:
- Recipes (ingredients, measures, instructions, dishes, complimentary dishes, etc)
- Local sports/activities league (teams, players, schedule, etc)

The further away from a specific business vertical, the better. Remember that a lot of people code for science or non-profits. However, in my experience, everyone knows the entities that go into a recipe, and everyone knows the entities that go into a community league.

There seems to be growing consensus on "blog" or "media library", but I agree with mabster -- those examples are not ideal because when you add a "post" or "CD" you pretty much only add one record to one table. (Compare to adding a "recipe", which involves upserting ingredients, adding ordinal instructions, etc.)

However, both "blog" and "media library" are an order of magnitude more accessible than Northwinds and Adventureworks, so three cheers to the effort, no matter what you end up selecting.

CodePlex: willsllc
Timezone: EST
June 03, 2008 9:00
Hi,

People are talking about media library OR blog. I think we should merge the two.

I imagin a media library that maintains a blog and forum. Their blog contains post about the titles, interesting stories behind these titles and interviews with the artists etc. In the forum section, members of the media library put their comments on the titles, people seek suggestions for good titles etc.

I know, I am thinking on the higher side, but today most of the websites supports forums. So if we can come up with a media library with blog and forum, it would serve our purpose in better way.

Yanesh Tyagi
June 03, 2008 9:30
The first ASP.Net book I ever read had a chapter on database design, and the first line was "If you know who Alfreds Futterkiste is, skip this chapter"!
June 03, 2008 15:57
How about having some sort of geographic information inside the database ? This can lead to all sort of cool demos ...
June 03, 2008 21:56
This really came off as whiney.....
June 03, 2008 23:21
What about a Notes/ToDo list? This offers lots of interesting data relationship potentials, with hierarchical data structures (like an outline), tagging, links to other items, possible image or video blob data, users, and user ownership of items, scoping of access to items (ie, making certain things public or private, with an ACL, etc).

It could be used for a social type website, or just on your local system for keeping track of things, you could integrate it with email through VSTO, wrap it up in a web service, access it through WCF, make a WPF interface that looks like a stack of 3x5 index cards, etc...

It's mundane enough that it's easy to understand, but you can pack lots of clever content into the data so that it's amusing to look over the list of stuff to do.

Even better... The list of stuff to do could, in itself be another sub-adventure, comprising a scavenger hunt, obscure research topics, travel destinations, or around the town tours.. One of the lists could be "What to do in Portland on a Saturday night", or tasty recipes.

Blah blah blah... Anyway, a todo list structure is pretty generic without being totally abstract and unengaging like the Northwind one is, and it, and it's examples, could make a nice component that's sort of missing from (or just lamely implemented in) a lot of applications.

I'd offer to help, but it seems you're already over-run with support.
June 04, 2008 19:14
<blockqoute cite="willsllc">There seems to be growing consensus on "blog" or "media library", but I agree with mabster -- those examples are not ideal because when you add a "post" or "CD" you pretty much only add one record to one table. (Compare to adding a "recipe", which involves upserting ingredients, adding ordinal instructions, etc.)</blockqoute>

As i think inserting a CD item still contain related records in it as a recipe. (especially ppl from sub contient know it well like me :) ) becuase a CD may contain an artist, band etc associated with it, then rents, price history blah blah. apology if i am wrong
June 05, 2008 2:28
As much as I dislike Northwind I'm more in the David Nelson camp, what are we trying to gain with Antiwind besides some better table and stored proc names? While Northwind is mind-numbingly dull it does at least slightly reflect what I've seen in a lot of small to medium databases while most blog databases used in examples are rather simplistic. One plus for Northwind is most people know it, they don't have to spend too much time mentally mapping out the tables.

That said if the new Antiwind hotness is going forward a few things to consider are...

- It'll need a self-referential/hierarchy table, where ParentID references the ID column in the same table. Useful for making sure your ORM of choice can handle those types of tables.

- As painful as it is it will need some non-standard table, stored proc and column names. A huge use for Northwind is for making sure funky names don't break your ORM.

- Sample data that should be escaped, again useful for unit tests. This is a place where Northwind lets me down.

Basically Antiwind/NotNorthwind should be wrench throwing supermodel: super clean database design for others to learn from while having enough non-standard things to not let ORM's off the hook.
June 06, 2008 11:39
Just a note about media libraries. There is more to it than Album/Track/Artist. One can easily add composers,performers and publishers. If you then want to handle classical and jazz music, the model can get pretty complex.
June 06, 2008 15:25
Pet Store?
June 11, 2008 0:54
I'm keen to get involved. Skype is CraigNicholson, CodePlex is CraigN, Timezone is UTC+2, yep South Africa.
June 20, 2008 6:05
I used to enjoy your blog until you became a shill for Microsoft. Let me guess: you will implement NotNorthWind in SQLServer 2008, right? What's it like to spend your time pimp'n for the man? No thank you. No, I opt out. You may not pull me by the nose ring & clip-on goatee towards your employer's wares. You call yourself a Program Manager or Evangelist but I say Huckster, Marketing Minion and Community Commissar. Sick, venal.
June 20, 2008 7:16
Henry Krinkle - Are you seriously kidding? You must have no idea what I'm about. I think it'd be better to do it in ANSI SQL such that it works on MySQL, SQL Server, etc. I want NHibernate DALs as well as others. In order to be a Huckster or "shill" one has to actually NEED the job. You are implying that simply for a regular paycheck I would actually change my opinion! That you think I am so easily bought for so little is the real scandal. A paycheck just isn't that important.
June 22, 2008 23:42
Scott I think it's a joke :). This is Mr. Henry Krinkle:
http://www.youtube.com/watch?v=0JptwfPC0Zg

I think Northwind has 2 things going for it we need to consider:
1) LEGACY. People know it immediately.
2) LEGAL. You know the rest.

Perhaps we can make an "AltWind" DB and really quickly just tweak what's there to be more performant, more relational, and more sexxy. Cause let's face it, Northwind is pretty 80's (Flock of Seagulls). We need to Maroon 5 it (that was the CD you had in your car that day wasn't it? I don't know what you kids are listening to these days...).

Whaddya say? Let's REV it!
June 22, 2008 23:49
BTW "sick, venal" is straight outta vid :). You got Krinkle-rolled.
June 27, 2008 1:00
Sorry just joining here - but definitely interested.

Skype/CodePlex: akselsoft

Comments are closed.

Disclaimer: The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.