Showing posts with label opinion. Show all posts
Showing posts with label opinion. Show all posts

Monday, March 26, 2012

Need for SQL

I'm in the process of ordering a new 2003 server from
Dell. It will be used in a Doctor's office with <5
clients. In your opinion is SQL software an essential
ingredient for overall performance, or does the 2003
server already incorporate many of the features of SQL ?
In simple terms what does SQL provide that 2003 srever
doesn't? As you can see I'm confused, I want to save cost
and not be redundant but in know way do I want to limit
the capabilities of the office.Hi
You may want to look at Small Business Server 2003. This includes amongst
others!
Windows 2003
Exchange 2003
The premium edition includes SQLServer 2000.
Although it may be alot of software to run on a single system the pricing of
this product may make it a viable option if you are looking to deploy all
three applications.
http://www.microsoft.com/windowsserver2003/sbs/evaluation/overview/default.mspx#XSLTsection122121120120
John
"Marty" <anonymous@.discussions.microsoft.com> wrote in message
news:02e101c3981e$3e81f150$a601280a@.phx.gbl...
> I'm in the process of ordering a new 2003 server from
> Dell. It will be used in a Doctor's office with <5
> clients. In your opinion is SQL software an essential
> ingredient for overall performance, or does the 2003
> server already incorporate many of the features of SQL ?
> In simple terms what does SQL provide that 2003 srever
> doesn't? As you can see I'm confused, I want to save cost
> and not be redundant but in know way do I want to limit
> the capabilities of the office.

Need for SQL

I'm in the process of ordering a new 2003 server from
Dell. It will be used in a Doctor's office with <5
clients. In your opinion is SQL software an essential
ingredient for overall performance, or does the 2003
server already incorporate many of the features of SQL ?
In simple terms what does SQL provide that 2003 srever
doesn't? As you can see I'm confused, I want to save cost
and not be redundant but in know way do I want to limit
the capabilities of the office.There is no relational database functionality built into Windows 2000
Server. SQL Server is needed only if you have (or are planning to
develop/purchase) database applications which require SQL Server.
--
Hope this helps.
Dan Guzman
SQL Server MVP
--
SQL FAQ links (courtesy Neil Pike):
http://www.ntfaq.com/Articles/Index.cfm?DepartmentID=800
http://www.sqlserverfaq.com
http://www.mssqlserver.com/faq
--
"Marty" <anonymous@.discussions.microsoft.com> wrote in message
news:04d601c3981e$3ec19260$a301280a@.phx.gbl...
> I'm in the process of ordering a new 2003 server from
> Dell. It will be used in a Doctor's office with <5
> clients. In your opinion is SQL software an essential
> ingredient for overall performance, or does the 2003
> server already incorporate many of the features of SQL ?
> In simple terms what does SQL provide that 2003 srever
> doesn't? As you can see I'm confused, I want to save cost
> and not be redundant but in know way do I want to limit
> the capabilities of the office.

Friday, March 23, 2012

Need expert's opinion on table schema...

Hello,
I have seen different types of table schemas employed in
applications and I would like to get the opinions of the
SQL experts...
First some definitions:
LU = Lookup
IP = Index Person
IA = Index Account
Background sample info:
Fred has two accounts number 9999 and 8888
Joe has one account 7777
I can represent these accounts in the following
table examples:
(probably lots more ways to do this, but I am interested
in these two architectures, but would be willing to
entertain other schemas)
Example 1:
Person LU Account
IP Name IP IA IA Num
1 Fred 1 1 1 9999
2 Joe 1 2 2 8888
2 3 3 7777
Example 2:
Person Account
IP Name IA IP Num
1 Fred 1 1 9999
2 Joe 2 1 8888
3 2 7777
My questions to the people who live and breath SQL,
What are the pros and cons to the above table schemas?
Please be specific and if necessary write me in a
separate email : Mike@.e-liss.org
Thanks
Mike"mike" <Mike@.e-liss.org> wrote in message
news:3ff801c3b129$dd3c06e0$a601280a@.phx.gbl...
> Hello,
> I have seen different types of table schemas employed in
> applications and I would like to get the opinions of the
> SQL experts...
> First some definitions:
> LU = Lookup
> IP = Index Person
> IA = Index Account
> Background sample info:
> Fred has two accounts number 9999 and 8888
> Joe has one account 7777
>
> I can represent these accounts in the following
> table examples:
> (probably lots more ways to do this, but I am interested
> in these two architectures, but would be willing to
> entertain other schemas)
>
> Example 1:
> Person LU Account
> IP Name IP IA IA Num
> 1 Fred 1 1 1 9999
> 2 Joe 1 2 2 8888
> 2 3 3 7777
>
> Example 2:
> Person Account
> IP Name IA IP Num
> 1 Fred 1 1 9999
> 2 Joe 2 1 8888
> 3 2 7777
>
Example 1 uses a linking table, and is a more general structure than Example
2. Using a linking table it is possible to model relationships 1-1 1-many
or many-many. Using a foregn key you can only model 1-1 or 1-many. From
just that, you should prefer Example 2. One of the guiding principles of
data modeling is to use the most specific model that meets your needs.
From a performance point of view, Example will be superior as well. Notice
that you can transform Example 1 into Example 2.
CREATE VIEW v_Account
as
select Account.IA, LU.IP, Account.Num
from Account join LU
on Account.IA = LU.IA
But to add or delete anaccount will require 2 operations instead of one.
Also queries will have to perform an additional and unnecessary join.
Or, think of it this way:
LU has a 1-1 relationship with Account. Whenever you see a datamodel with a
1-1 relationship, the related should be merged. There are exceptions, but
all rules have execptions.
David|||>--Original Message--
>"mike" <Mike@.e-liss.org> wrote in message
>news:3ff801c3b129$dd3c06e0$a601280a@.phx.gbl...
>> Hello,
>> I have seen different types of table schemas employed
in
>> applications and I would like to get the opinions of
the
>> SQL experts...
>> First some definitions:
>> LU = Lookup
>> IP = Index Person
>> IA = Index Account
>> Background sample info:
>> Fred has two accounts number 9999 and 8888
>> Joe has one account 7777
>>
>> I can represent these accounts in the following
>> table examples:
>> (probably lots more ways to do this, but I am
interested
>> in these two architectures, but would be willing to
>> entertain other schemas)
>>
>> Example 1:
>> Person LU Account
>> IP Name IP IA IA Num
>> 1 Fred 1 1 1 9999
>> 2 Joe 1 2 2 8888
>> 2 3 3 7777
>>
>> Example 2:
>> Person Account
>> IP Name IA IP Num
>> 1 Fred 1 1 9999
>> 2 Joe 2 1 8888
>> 3 2 7777
>>
>Example 1 uses a linking table, and is a more general
structure than Example
>2. Using a linking table it is possible to model
relationships 1-1 1-many
>or many-many. Using a foregn key you can only model 1-1
or 1-many. From
>just that, you should prefer Example 2. One of the
guiding principles of
>data modeling is to use the most specific model that
meets your needs.
>From a performance point of view, Example will be
superior as well. Notice
>that you can transform Example 1 into Example 2.
>CREATE VIEW v_Account
>as
>select Account.IA, LU.IP, Account.Num
>from Account join LU
> on Account.IA = LU.IA
>But to add or delete anaccount will require 2 operations
instead of one.
>Also queries will have to perform an additional and
unnecessary join.
>Or, think of it this way:
>LU has a 1-1 relationship with Account. Whenever you
see a datamodel with a
>1-1 relationship, the related should be merged. There
are exceptions, but
>all rules have execptions.
>David
>
>.
>
David,
Are there any significant draw backs to not using Ex 1 ?
If not, the what is the purpose of the LU table?
So Fred and Joe can share the same account ?
ie:
IP IA
1 1
2 1
Where in example 2 this is not possible ?
Thanks
Mike|||"Mike" <anonymous@.discussions.microsoft.com> wrote in message
news:043e01c3b134$23540330$a001280a@.phx.gbl...
> >--Original Message--
> >
> >"mike" <Mike@.e-liss.org> wrote in message
> >news:3ff801c3b129$dd3c06e0$a601280a@.phx.gbl...
> >> Hello,
> >>
. . .
> David,
> Are there any significant draw backs to not using Ex 1 ?
> If not, the what is the purpose of the LU table?
No.
> So Fred and Joe can share the same account ?
> ie:
> IP IA
> 1 1
> 2 1
> Where in example 2 this is not possible ?
Exactly right. It just allows modeling different kinds of relationships.
David

Monday, March 19, 2012

Need another Opinion (Database Design)

I need some other opinions on whether or not this is considered a proper database design structure.

Here is the relationship...We have PEOPLE, that each can belong to a COMPANY.

PERSON_TABLE
Person_ID
Company_ID

COMPANY_TABLE
Company_ID

Then each person can trust other people of other companies, but can only trust 1 person per company.

My question is this. In order to maintain a constraint of 1 person per company, is it considered OK to add a the redundant column Company_ID to the PERSON_TRUSTED_TABLE(and then creating a composite primary key on the Person_ID/Company_ID) instead of just adding a trigger to the PERSON_TRUSTED_TABLE to uphold the constraint.

PERSON_TRUSTED_TABLE
Person_ID
Trusted_Company_ID
Trusted_Person_ID

I would appreciate anyone's opinion. Thanks so much!

There is a third option although it's not much different from your PK idea. I think the major questions is in how many other tables do you reference the person_truested_table? You need a PK in your table anyway, so if you don't create a composite PK out of (person_id, trusted_company_id), what would you do to create a PK?

1.) would you create a PK column?

In this case you could create a unique key on (person_id, trusted_company_id), which has the same effect as the PK and you don't need a trigger. This would be my personal preference if you reference this table by many others, simply because you have a 1 column PK.

2.) would you create the PK out of (person_id, truested_person_id)?

Well this in not much different from the (person_id, trusted_company_id) idea, so i would add the trusted_company_id column and create the PK on those as you suggested.

What i would not do at all for this problem is to create a trigger.|||

As I understand your issue, it seems that it is necessary to allow all any and all [Person] to trust any and all [Company] -constrained that any one person can ONLY trust one person from any one company.

If that seems about right, then a constraining composite key (PK or UI) in the [Person_Trusted] table is what is needed. That composite key 'should' be on [Person_ID] and [Trusted_Company_ID].

One person, Bill, ID: 25, is allowed to trust only one person for company Acme Industries, ID: 1001. It doens't matter which Acme Industries employee Bill has trusted, once he has a trust relationship with Acme Industires another cannot be allowed unless he first removes the existing relationship. Or he can just UPDATE the [Person_Trusted] table to reflect the replacement 'trusted' person.

As a side note: You don't need the archaic denotation of [_TABLE] on the table names. It will be obvious from the context that [Person], or [Company], or whatever is in fact, a table. And it is wasted keystrokes to have to continually type something that does not provide any value.

|||I understand what you are saying about the _TABLE thing. I just put it in the post to be more descriptive.

I get your point, but do you realize that you can get to the Trusted_Company_ID from the Trusted_Person_ID. So really, by putting the Trusted_Company_ID on the PERSON_TRUSTED_TABLE, it would be redundant data.

Instead of putting the Trusted_Company_ID on the PERSON_TRUSTED_TABLE, you could just create a trigger on that table that gets the Company_ID from the Trusted_Person_ID, and upholds the constraint. Therefore no redundant data.

After this explanation, do you still think that adding the redundant column Trusted_Company_ID to the PERSON_TRUSTED_TABLE is the correct implementation?

Thank you so much for the input. It is very helpful.|||

In my opinion, this is one of those worthy exceptions to 'normalized' data.

Yes, it is a 'little' redundent. However, anytime you manage the Trusted_Person, you will most likely have the Trusted_Company information at hand -so it is not a 'big deal'. Consider establishing [CASCADE UPDATES] and/or [CASCADE DELETES] as appropriate.

My consideration is that using a TRIGGER is a relatively heavy handed approach, adding significant effort to the server to manage what should be a 'simple' CONSTRAINT.

The effect you are seeking is that for any one Person there can be only one Company trusted (it doens't matter who the Trusted_Person is for that Company). Having to traverse through the Trusted_Person-Company to determine if there is already a record for that Person-Company could be unnecessary effort.

Need an opinion: Access vs. SQL Server Express or another alternative?

I inherited this website from a previous developer that uses an Access DB as a backend. Ugh. Apparently, he was extremely limited in what databases he could use. The website is filled with problems related to connecting to this database, which is no surprise. Most of them are related to permissions to the database file, multiple user access, etc.

I am thinking about moving this to a SQL Server Express DB and upgrading the site to the 2.0 framework. Most of my experience is in SQL Server, but since they can't, or won't, pay for the SQL Server Database, is this a good solution? I've considered using MySQL as well, but their host won't provide support for this. Are there any other recommended alternatives?

I would go for SQL Express out of any of those alternatives... and I've done a lot of alternatives. SQL Express is actually very nice, and if you are already farmiliar with SQL Server, then a lot of the syntax will still make sense.

Actually,www.SingingEels.com was running on SQL Express for a while, but when I put it on my shared hosting environment, they have SQL Server 2005, and don't support SQL Express, so I moved it to that.

|||

I suggest that you move toSQL Server 2005 Express Edition which is completely free (though it has less features than the commercial full edition) and good to use for small-medium websites. It is a much better alternative than MS Access, besides its free for commercial use too.

Hope this helps,

Vivek

Need an opinion

Over the past two years (and with the help of many of you), I have created a CMMS that is used by my company. I have all the machine data stored in SQL Server. I have used MS Access and ASP's as the front end for data entry. I use SQL Server Agent to run exception reporting (email).

When I started I had no Experience at all with programming other than classes taken 98-99 (html, C++, vb).

Having said that, I am sure some of you can recall your first attempts at creating an app. With the constant upgrades to do more stuff, I am at the point that I need to go back and clean up (remove obsolete code).

Now for the question. I want to revamp my front-end particularly the Access App. If you were going to create a new app for data entry/reporting and your main strength was vbscript, what would you use?

Thanks,
LeeVB.Net of course.|||Originally posted by joejcheng
VB.Net of course.

I have created asp's using vbscript, but how does one get started with VB.net?|||My recommendation would be c#. There are enough differences between vbscript and vb.net that transitioning to c# is marginally steeper - c# also encourages better techniques for object oriented development. Also, you can translate easily to java once you have learned c#.

Anyway, research books on amazon.com to see which books would best suit your needs (whether it be vb.net or c#). Also, which will you focus more on - windows or web development. If you will develop in asp.net, then search for the appropriate books. Do you have access to visual studio .net or 2003 ?|||I have visual studio V6 but it is not .net|||At one point ms had a $50 upgrade from vs 6 to .net - but that does not exist anymore. Well if you can get .net then do so. If not, then you can develop with vs6 using visual interdev developing asp web pages using vbscript/javascript. But I would push your company to purchase the .net ide because ms is starting to drop support/distribution for several applications including those that deal with asp.|||"Front end" applications ought to be simple .. as simple as possible .. and there's usually a lot of rationale for "stick with the devil you know." That would be Visual Basic in some variation or another. And if possible, it ought to be the existing application if you can possibly do it.

First, you should carefully and systematically identify exactly what it is about the present application that compels you to replace it. That makes it absolutely essential to commit many thousands of dollars to doing so (even if you'll be the one who receives most of those dollars!). You need to be able to write down exactly what the deficiencies are, exactly how you'd be able to recognize an appropriate solution to those deficiencies if one hit you in the face (a solution, that is, not a deficiency...), and you ought to be able to defend those conclusions and decisions against your favorite "devil's advocate." Think from the business's point of view, not your own, and defend your company's supply of liquid cash as hard as you can. It's a good exercise.

You ought to thoroughly explore the "build vs. buy" decision angle: why is it impossible for your business not to simply buy a solution? Is your company really the first one to have been faced with this problem? Has no one solved it before? If such a solution does exist, how much would that alternative cost? (And don't blink at "$50,000" 'cuz your alternative might cost more. Again, be honest. Even cynical.)

If the true answer is, "well, I wanna learn another language and this sounds like a good excuse to do it," :rolleyes: be honest, from a business point of view that don't wash. :)

Maybe the existing application can be tweaked a little and fixed. You've put a lot of time into what you have now and it's tough to justify scrapping it.

These are the kinds of arguments you should impose on yourself. If your project flies through all of this self-imposed rigor, then :D ... you've found a project really worth doing, and you'll have developed a crystalline idea of exactly how to succeed with it.|||First you must know that in the beginning my job was to "administrator" a canned MMS and not in the development of a program. My background is in day to day maintenance of machinery. I wear several hats and the developer is not even in the job description. It is something that has happened out of necessity.

It is kinda complicated, but the short of it is that my program is very custom to our plant, and in the past 6 months, I have had several people from other plants and divisions come in to review our maintenance program. All have liked our program as it keeps the end user in mind, but because it is so custom it is not easily transferable. It combines machine history with plant performance down to the operator.

What I would like to do is take the custom code (machine specific to our plant hard coded in) out and make it dynamic, so that it would work for other plants. I want to do in a way that is most efficient and most appealing to the user. And in that I mean low resource usage (hardware and peoples time).

I understand your last 4 paragraphs and that is the reason that the majority of the redo will be done by me on my own as an opportunity to continue to grow as a developer. Having said that, that is why I am wanting to find a platform that is easy to learn and not expensive to purchase as an individual.