Hi Shahu -

See? I didn't want to bore you with the overall scope of my project and it 
turns out I'm giving too little info!

I think what you suggest is what I'm looking for. And then I would create 
another table for all information about the play (such as synopsis, etc) that 
would relate to mainproperty in your example?

Jeremy




--- In php_mysql@yahoogroups.com, Shahu <shaha...@...> wrote:
>
> On Fri, May 21, 2010 at 8:39 PM, pirate_lenny <piratele...@...> wrote:
> 
> >
> >
> > Okay. There are some other things going on. It's a site similar to IMDB.
> > When I say property, I mean a play. So, for example, let's take the play
> > Hamlet.
> >
> > Hamlet is commonly known as Hamlet. But there is an alternate title of The
> > Tragedy of Hamlet, Prince of Denmark.
> >
> > So, Hamlet would go in the "properties" table and The Tragedy of... would
> > go in the subproperties table.
> >
> > But, then in the database, there are productions of Hamlet. Some may have
> > the title Hamlet and some may have used the alternate title. Do you suggest
> > adding a title field where the data would be repeated?
> >
> > And then within those productions are credit lists which contain people.
> > Those people can have multiple names. So, in one production, Joe Schmoe may
> > be credited. In another production, he may have used the name Joe S. Schmoe.
> >
> > The only way that I can think of achieving what you suggest is to do the
> > following:
> >
> > PROPERTIES
> > propertyid
> > property title
> >
> > SUBPROPERTIES (alt. titles)
> > propertyid (related to above)
> > alt. property titles
> >
> > PRODUCTIONS
> > productionid
> > propertyid (relates to properties)
> > production title (var char with full title)
> >
> > CREDITS LIST
> > credit id
> > credit variable (relating to bio table)
> > credited name (var char with name)
> >
> > BIO TABLE
> > bioid (related to credit variable)
> > bioname (var char with name)
> >
> > BIO ALT NAMES
> > bionameid
> > bioname (var char with name)
> > bioid (related to bio table)
> >
> > Is this your recommendation? It seems like a lot of info is repeated. It
> > would be easier to work with because I wouldn't have to have all of these
> > join statements. But it would inflate my database quite a bit.
> >
> >
> ohh!!! this is the real scene? I was thinking about only those two tables.
> anyway. I think we need to change the tables little bit.
> first of all I would like to give u an idea about the main & sub property (
> and of course their search).
> Just check it out if this can be nearer to what you are looking for. If yes
> then we will proceed otherwise again brainstorming .
> 
> there will be only one table for property. Which will accommodate both main
> & sub property names.
> 
> PROPERTIES
> propertyid
> property title
> parentid
> 
> 
> In this table Hamlet will have parentid 0. And  The Tragedy of Hamlet,
> Prince of Denmark will have the parent id which is property id of hemlet.
> e.g. try this one -
> INSERT INTO `mainproperty` (propertyid, title, `parentid`) VALUES
> (1, 'one', 0),
> (2, 'two', 1),
> (3, 'three', 0),
> (4, 'four', 3),
> (5, 'five', 3),
> (6, 'six', 1);
> 
> Now lets check your question which u initially asked where you want to
> search by the title & want to get the main & sub titles for given property.
> here is the query -
> SELECT m.pname as mastername, c.pname as childname
> FROM mainproperty m inner join mainproperty c on
> c.parent = m.pid where m.pname like '%tw%' or c.pname like  '%tw%';
> (tw is string to search).
> 
> If this seems OK then you can use same logic for the name of people where a
> single person can have multiple names.
> 
> I am trying my best to understand ur question & to answer it.
> 
> Regards,
> shahu.
> 
> In php_mysql@yahoogroups.com <php_mysql%40yahoogroups.com>, Shahu
> <shahajip@>
> wrote:
> >
> > yes i am suggesting to place main propeabrty in one one table and its sub
> > properties in another table and relate these tables with the id of main
> > property. That would be much better.
> >
> >
> > On Thu, May 20, 2010 at 11:45 PM, pirate_lenny <piratelenny@>wrote:
> >
> > >
> > >
> > >
> > >
> > > --- In php_mysql@yahoogroups.com <php_mysql%40yahoogroups.com><php_mysql%
> 40yahoogroups.com>, Shahu
> 
> > > <shahajip@> wrote:
> > >
> > > >
> > > > On Thu, May 20, 2010 at 7:55 PM, pirate_lenny <piratelenny@> wrote:
> > > >
> > > > >
> > > > >
> > > > > I've got two tables that I'd like to search. Here is how I've got it
> > > set
> > > > > up:
> > > > >
> > > > > There is a property table. Each property can have multiple names,
> with
> > > one
> > > > > name designated as the main name. So there is a property name table
> as
> > > well.
> > > > > But I want the user to be able to search by property names and the
> > > result to
> > > > > display as:
> > > > >
> > > > > Main Property Name
> > > > > a.k.a. Non-Main Property Name 1
> > > > > a.k.a. Non-Main Property Name 2
> > > > >
> > > > > I'm having problems doing this without multiple queries.
> > > > >
> > > > > Right now, I've got one query that searches the names. Then another
> > > query
> > > > > that takes the found property ID and finds that property. The
> property
> > > is
> > > > > displayed with the main property name. Then there is another query
> to
> > > find
> > > > > the aka's.
> > > > >
> > > > > I have to repeat this type of thing on the search results page as
> well
> > > for
> > > > > people and then people with multiple names. That makes 8 queries to
> > > display
> > > > > the search results. Plus more in the future as we add different
> options
> > > for
> > > > > searching the site.
> > > > >
> > > > > Is there a better way to do this? Can someone point me in the right
> > > > > direction?
> > > > >
> > > > > do u mean this? --
> > > >
> > > > tables -
> > > > CREATE TABLE `mainproperty` (
> > > > `pid` int(11) NOT NULL AUTO_INCREMENT,
> > > > `pname` varchar(255) NOT NULL,
> > > > PRIMARY KEY (`pid`)
> > > > ) ENGINE=MyISAM AUTO_INCREMENT=5 DEFAULT CHARSET=latin1
> > > >
> > > > CREATE TABLE `subproperty` (
> > > > `subid` int(11) NOT NULL AUTO_INCREMENT,
> > > > `pid` int(11) NOT NULL,
> > > > `subname` varchar(255) NOT NULL,
> > > > PRIMARY KEY (`subid`)
> > > > ) ENGINE=MyISAM AUTO_INCREMENT=10 DEFAULT CHARSET=latin1
> > > >
> > > > inserting data -
> > > >
> > > > INSERT INTO `mainproperty` (`pid`, `pname`) VALUES
> > > > (1, 'one'),
> > > > (2, 'two'),
> > > > (3, 'three'),
> > > > (4, 'four');
> > > >
> > > >
> > > > INSERT INTO `subproperty` (`subid`, `pid`, `subname`) VALUES
> > > > (1, 1, 'one-one'),
> > > > (2, 1, 'one-two'),
> > > > (3, 1, 'one-three'),
> > > > (4, 2, 'two-one'),
> > > > (5, 2, 'two-two'),
> > > > (6, 2, 'two-three'),
> > > > (7, 3, 'three-one'),
> > > > (8, 3, 'three-two'),
> > > > (9, 4, 'four-one');
> > > >
> > > >
> > > > query -
> > > > select m.pname,s.subname from mainproperty m inner join subproperty s
> on
> > > > m.pid=s.pid;
> > > >
> > > > regards,
> > > > shahu
> > > >
> > > >
> > > > >
> > > >
> > > >
> > > >
> > > > --
> > > > http://phpinterviewanswers.blogspot.com/
> > > >
> > > >
> > > > [Non-text portions of this message have been removed]
> > > >
> > >
> > > Shahu - Thanks for the answer. Unfortunately, I don't think that that
> will
> > > work. My properties/names tables are set up like
> > >
> > > PROPERTIES
> > > propid (int)
> > > propname (int)
> > >
> > > PROP NAMES
> > > propnameid (int)
> > > propname (var char)
> > > propno (int)
> > >
> > > propid is the primary key in Properties. Propname is the main name
> assigned
> > > to that property.
> > >
> > > propnameid is the primary key for Prop Names (and is placed in propname
> to
> > > indicate which name is primary). It's then displayed using a join.
> > >
> > > propno is used to relate all of the names to the property.
> > >
> > > Are you suggesting that I should be placing the main property name in
> the
> > > properties table? That would be easier to search?
> > >
> > > Jeremy
> > >
> > >
> > >
> >
> >
> >
> > --
> > http://phpinterviewanswers.blogspot.com/
> >
> >
> > [Non-text portions of this message have been removed]
> >
> 
>  
> 
> 
> 
> -- 
> http://phpinterviewanswers.blogspot.com/
> 
> 
> [Non-text portions of this message have been removed]
>


Reply via email to