It's funny how terminology can be so confusing!  When I say "dimension",
I mean engineering-wise as in the distance from a to b.

Also, my use of session probably wasn't a good word in this
context.  Our sessions are actually permanently stored, since
they are associated with a particular engineering job.  The user
may want to recall a past job to review the inputs and/or recreate
the design.

That said, the temporary table information is useful...  I may
need that to manage the system once we change the user interface
from a single page to a step-by-step approach.

Thanks for all of the help!
Mike Zelina

Brent Baisley wrote:
> I thought you were coming from some other database. I haven't heard 
> "dimension" since my FoxPro (on the Mac) days.
> Since session data is temporary, you should use temporary tables to 
> store you session variables. Just use the "real" table to hold you 
> default values.
> You want to do something like this at the start of a session:
> create table SessionVars SELECT * from SessionDefaultsTable
> 
> Then you just read or update the SessionVars table as needed. MySQL will 
> handle the creation and management of the table and that temp table will 
> be unique to each user, so you don't need to worry about table name 
> conflicts, MySQL handles it. Also, MySQL handles dropping the table when 
> the user "disappears", so you don't have to worry about cleanup. Read up 
> on temporary tables, I think they would help you considerably in this 
> situation.
> 
> 
> On Thursday, August 1, 2002, at 01:39 PM, Michael Zelina wrote:
> 
>> Hi Brent,
>>
>> Thanks for the response.  Currently, I have the variables listed out
>> in a table with one variable per row...  something similar to the 
>> following:
>>
>> +----+------------------+-
>> | ID | DimensionName    |
>> +----+------------------+-
>> |  1 | units_length     |
>> |  2 | units_temp       |
>> |  3 | dim_positionX    |
>> |  4 | dim_width        |
>> |  5 | dim_length       |
>> +----+------------------+-
>>
>> So, I can easily add dimensions or remove them as needed.  The problem
>> I have concern about is storing the dimension values a user inputs for
>> a given "session".  For this I now have a table defined as follows
>> that maps to the ID of the variable list table:
>>
>> +--------------+------+------+------+------+
>> | SESSIONID    | ID1  | ID2  | ID3  | ...  |
>> +--------------+------+------+------+------+
>> | session_abcd | in   | F    | 5.5  | .... |
>> | tesfile1     | in   | F    | 6.0  | .... |
>> | large_design | in   | F    | 7.25 | .... |
>> | small_design | in   | F    | 8.0  | .... |
>> +--------------+------+------+------+------+
>> 4 rows in set (0.04 sec)
>>
>> This way, I can have the values stored as a single row and easily 
>> delete and
>> add session file values from the database.  Using the ID value as the 
>> column
>> provides some abstraction so I can rename dimensions and the sessions 
>> are still
>> valid.
>>
>> Any thoughts on how better to store the session data?  Since I am coming
>> over from Access, I currently have three tables with 255 columns each.
>> Performance-wise it seems OK...  and I'm wondering if I should 
>> consolidate
>> the tables into one or leave them separated.  Or if even with a 255 
>> column
>> table I might run into performance problems.
>>
>> Thanks again for the help,
>> Mike
>>
>> Brent Baisley wrote:
>>
>>> A rule of thumb I always follow is to design the DB so that you don't 
>>> have to add columns (or modify the structure) unless something 
>>> unforseen comes up (like a new feature). In your case, you are 
>>> expecting to add "variables" in the future, so I would deign 
>>> accordingly.
>>> Use rows instead of columns. Using rows also allows you to index all 
>>> variable values and names, since there are only two columns. You 
>>> couldn't index all your columns if you expanded horizontally instead 
>>> of vertically. Besides, it's a heck of a lot easier to add a row than 
>>> a column.
>>> On Thursday, August 1, 2002, at 01:09 AM, Michael Zelina wrote:
>>>
>>>> Can someone provide insight into what a good maximum number of
>>>> columns is in a MySQL database?  I have an extensive list of variables
>>>> for an engineering application which number in the 700+ range with
>>>> more additions possible down the road.  My question is:  should I break
>>>> up the variables into several tables for storage, or can I use a
>>>> single table with this many columns.  I cannot find any good rules of
>>>> thumb for how much the number of columns effects performance.
>>>>
>>>> In trying to consolidate my existing data from Access (which limits 
>>>> columns to 255
>>>> per table) into a single table, I received the following error:
>>>>
>>>> mysql> create table tblsessions select * from tblsessionfiles, 
>>>> tblsessionfiles2,
>>>>        tblsessionfiles3 WHERE tblsessionfiles2.sessionid_2 = 
>>>> tblsessionfiles.id38
>>>>        AND tblsessionfiles3.sessionid_3 = tblsessionfiles.id38;
>>>> ERROR 1118: Too big row size. The maximum row size, not counting 
>>>> BLOBs, is 65535. You have to change some fields to BLOB
>>>>
>>>> I assumed that the maximum row size is the total bytes for the 
>>>> entire row.  My
>>>> questions are:  (1) can I change this without recompling MySQL and 
>>>> (2) should
>>>> I really do this or just stick with three or more separate tables 
>>>> for performance
>>>> reasons.
>>>>
>>>> FYI, I am running this on a well-equipped server and will probably 
>>>> only have a
>>>> maximum # of concurrent users doing DELETE and INSERT in the range 
>>>> of 150 or so.
>>>>
>>>> Thanks,
>>>> Mike
>>>>
>>>> ---------------------------------------------------------------------
>>>> Before posting, please check:
>>>>   http://www.mysql.com/manual.php   (the manual)
>>>>   http://lists.mysql.com/           (the list archive)
>>>>
>>>> To request this thread, e-mail <[EMAIL PROTECTED]>
>>>> To unsubscribe, e-mail <mysql-unsubscribe-
>>>> [EMAIL PROTECTED]>
>>>> Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php
>>>>
>>>>
>>> -- Brent Baisley
>>> Systems Architect
>>> Landover Associates, Inc.
>>> Search & Advisory Services for Advanced Technology Environments
>>> p: 212.759.6400/800.759.0577
>>
>>
>>
> -- 
> Brent Baisley
> Systems Architect
> Landover Associates, Inc.
> Search & Advisory Services for Advanced Technology Environments
> p: 212.759.6400/800.759.0577
> 
> 
> ---------------------------------------------------------------------
> Before posting, please check:
>   http://www.mysql.com/manual.php   (the manual)
>   http://lists.mysql.com/           (the list archive)
> 
> To request this thread, e-mail <[EMAIL PROTECTED]>
> To unsubscribe, e-mail 
> <[EMAIL PROTECTED]>
> Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php
> 
> 



---------------------------------------------------------------------
Before posting, please check:
   http://www.mysql.com/manual.php   (the manual)
   http://lists.mysql.com/           (the list archive)

To request this thread, e-mail <[EMAIL PROTECTED]>
To unsubscribe, e-mail <[EMAIL PROTECTED]>
Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php

Reply via email to