Okay, I'm still lacking understanding on the inventory part. Here's what I
have so far:

class Inventory(models.Model):
    id = models.AutoField(primary_key=True, verbose_name="inventory")
    samurai_id = models.ForeignKey('Samurai')
    item_id = models.ManyToManyField(Item)
    condition = models.IntegerField(default=100, blank=True,
verbose_name='condition')

This has almost all the functionality I want. I can assign a single
inventory to a single samurai, and I can add multiple items to the
inventory. The problem is that I can't associate a unique condition (100% or
less) with each item. And I can't seem to add the same item twice.

I would like to have an inventory that looked like this:

Inventory for Samurai Sam:
(item - condition)
Item1 - 100%
Item1 - 75%
Item2 - 100%

-Tim

On Thu, Feb 18, 2010 at 7:27 PM, Tim Shaffer <timster...@gmail.com> wrote:

> 1) You can change this in your model. Check out "verbose_name" and
> "verbose_name_plural" for the model's Meta class.
>
> http://docs.djangoproject.com/en/dev/ref/models/options/
>
> 2) If you have a ManyToMany field to samurai on the item, you don't
> need the inventory model at all. A samurai's inventory could be
> obtained by doing "samurai.item_set" and it would return all their
> items. There are different reasons to do each one. However.....
>
> 3) Duplicates can be done by using the Inventory model. You could
> either add a new field called quantity, or simply have multiple
> Inventory records per item and samurai. If each item can have specific
> attributes (for example, I can have 2 of the same item, one of which
> has 55% durability, and the other has 70% durability) you would want
> to have separate records, and could put these attributes on the
> inventory model or item model. But if each item is the same, it's
> easier to just use a quantity field.
>
> 4) If status is a field that could have changing options, create a
> Status model and do a ForiegnKey(Status) on the item. If the choices
> aren't going to change frequently, the choices field could be an
> Integer or String field and use the Django choices functionality.
>
> http://www.djangoproject.com/documentation/models/choices/
>
> I gather that you may not have a ton of experience working with
> relational databases. Perhaps an article on basic database design
> might help. It's best to really understand how a relational database
> works and should be designed before trying to work with Django's ORM.
>
>
> http://www.deeptraining.com/litwin/dbdesign/FundamentalsOfRelationalDatabaseDesign.aspx
>
> On Feb 18, 3:17 pm, Timothy Kinney <timothyjkin...@gmail.com> wrote:
> > Hello, I'm new to Django, but learning as fast as I can. I would
> > appreciate some technical help and some database design advice...
> >
> > **
> > 1) Admin pluralizing question
> >
> > So I have three models: samurai, item, inventory
> >
> > When I login to the admin screen it has chosen to pluralize them as:
> > samurais, items, inventorys
> >
> > I'm a little bit anal, so this bothers me. Where can I change it to:
> > samurai, items, inventories ?
> >
> > **
> > 2) Model relationships question
> >
> > Can someone validate that I am using the right relations for these?
> > Users will login with a unique id and instantiate a samurai, each
> > possessing various attributes (not shown below). Items have unique IDs
> > but many samurai can have many of the same items (including
> > duplicates)- also the items have a status as to the condition of the
> > item. There is one inventory for each samurai which links his items to
> > him. Based on this system, I believe I should do the following...
> >
> > Samurai model: AutoField ID (primary key, unique)
> > Item model: AutoField ID (primary key, unique), ManyToMany(Samurai)
> > Inventory: Foreignkey(Samurai), ManyToMany(Item)
> >
> > Did I do this right?
> >
> > **
> >
> > And two design questions:
> >
> > 3) How should I implement duplicates of items for a single inventory?
> > For example, one samurai may have two identical fish. Should I store
> > this as an additional field in the inventory? If so, how do I link it
> > to the item id? Is it cleaner/faster/better to use a dictionary?
> > Actually, I've never heard of a dict in SQL.
> >
> > 4) How should I implement the status/condition of the items? For
> > example, I want them to be "New", "Used", or "Broken/Unusable". Should
> > I store this in the inventory or in a separate model called Status? If
> > the latter, should I use a foreignkey(item) and OneToOne(Inventory) or
> > something else?
> >
> > Thank you very much for your help. If you are aware of any tutorials
> > or available source code for coding RPGs, browser games, or
> > inventories, I will be happy to follow links and try to learn on my
> > own.
> >
> > -Tim
>
> --
> You received this message because you are subscribed to the Google Groups
> "Django users" group.
> To post to this group, send email to django-us...@googlegroups.com.
> To unsubscribe from this group, send email to
> django-users+unsubscr...@googlegroups.com<django-users%2bunsubscr...@googlegroups.com>
> .
> For more options, visit this group at
> http://groups.google.com/group/django-users?hl=en.
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to django-us...@googlegroups.com.
To unsubscribe from this group, send email to 
django-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en.

Reply via email to