Closed. This question is off-topic. It is not currently accepting answers.
Want to improve this question? Update the question so it's on-topic for Stack Overflow.
Closed 10 years ago.
Improve this question
I have been using SQL Server 2008 as the database for an windows desktop application. I am re-engineering the product and I might use SQL Server 2008 or MySQL going forward.
So I am thinking of a general solution for archiving. Is there something similar to SqlDump in SQL Server 2008? Presently I am not using an ORM, I might plan to use Entity Framework in the coming days.
Basically I want to remove the old entries and whenever report has to be generated, I have to recover it as well..
Also I have an issue here: what if the database schema changes? How do we restore the old database?
If there is no common solution i would appreciate the solution specific to SQL Server 2008.
The topic of archiving, in general, is too broad for this forum. But I'm going to put in my two cents. I have found that it is best to archive records (i.e. literally move records from one table to another) and oftentimes in a different database.
This handles the schema issue because you can modify the schema of the archive table and keep it in sync.
It also allows you to write specialized reports that actually include archived data as an option.
It further allows you the ability to setup the server architecture for your archive databases differently than your production databases. They don't even have to be on the same server. They don't even have to be linked. Building a .NET application to move rows from one database to another on regular intervals based on your needs would be pretty trivial.
Related
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 6 years ago.
Improve this question
I have a web page where I need to get fields from many tables in SQL that can all join. Is it better in terms of performance to do a few queries to the database or one big SQL statement. I'm using MVC with Web API calls.
Thanks.
In the past I've created DB Views to define the data I'm looking for. Depending on the data access framework you are using this can also be helpful in returning the data and translating it to objects.
As far as performance goes, I'm most familiar with SQL Server, and in the Management Studio there is an option to "Include Actual Execution Plan". This will show you a full breakdown of your JOIN statements, what indexes are being used if any, and will suggest indexes to speed performance. I recommend this tool to all developers on my teams when they are stuck with a slow performing page.
One other thing to note, the database configuration also makes a difference. If you are running a local database you will have fewer concerns than if you were running a cloud based database (Azure SQL, etc) as those have management overhead beyond your control when it comes to availability and physical location of your instance at any given time.
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 6 years ago.
Improve this question
I have spent a few days for implementation and testing some SQL-based database management system for my project. It's a small local shop management system, supposed to be sold to many of users and shop owners. It will be an offline system for owners and the staff of the shop, so we need to secure the database from unwanted accesses. I need a SQL database management system that works with .NET Winform (C#) EntityFramework and easy to build an installer package. These are what we have tried:
SQL server Express 2012: SQL database, free, works well with .NET and Entity Framework but pretty hard to build a perfect installer for users without having them to manually install SQL Server System on their computer and it doesn't protect the database from unwanted accesses.
Localdb: portable, free, works well with .NET and EF, easy to deploy, very reliable but again, not secure.
SQL Compact Edition: almost the same as Localdb, has its own password encryption feature for the database but has been deprecated, isn't stable enough and doesn't work really well with EF.
SQLite: just like SQL Compact edition.
SQL server 2016 Developer edition: same as SQL Server Express, plus the database encrytion (TDE), but I haven't figured out how to make a good installer.
There are tons of software like this out there, how did they solve these problems?
Looks like SQLite will suit your bill. Entity Framework does have an SQLite provider and the database itself requires no server software or other infrastructure to be set up, it’s literally just a file.
If you really want to make it secure, you could encrypt the entire database, but that would have certain memory and CPU requirements to work with. If you encrypt individual fields, the schema and individual fields will be visible. Foreign keys could be difficult with such setup.
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 9 years ago.
Improve this question
I am new to programming in windows environment with Visual Studio most of my work is done in web and PHP .I have to build windows application for a store and the store has to add stock/make bills and sort expired products and the stuff related to stuff so what database backend should i prefer?i thought of microsoft sql but i have to install it on clients system or any simple alternative would be more helpful ?
I asked a similar question here:
Local file-based SQL Server
I had used SQL Server previously, but like you, it had to go onto a client's computer. I'm now using "Microsoft SQL Server Compact Edition (CE)" as suggested in the answer, and this works really well as a standalone database solution.
For deployment point of view I suggest you to use MS Access Database. It is most flexible and simple in use also. Check following link for same
http://office.microsoft.com/en-in/access/
I am using MDB (access database), but for the next project thinking to go for SQLite.
Reason is because MDB access via OleDb is not working in 64 bit applications. You have to compile software as 32 bit, then it will work under 64 bit OS. Or other solution is to install something, called ADE, what will add provider, which solve the issue.
Closed. This question is off-topic. It is not currently accepting answers.
Want to improve this question? Update the question so it's on-topic for Stack Overflow.
Closed 10 years ago.
Improve this question
I have a requirement as below.
Windows application in c# with My sql database.
MySql database in both local and server .
One centralized server with many client
Synchronizing the server database at each time when the new entry or update is
happen in local machine.
The server data also needs to be updated in local at regular intervals inorder to avoid conflicts
I need to know what is the best approach to follow to make this synchronization without any conflicts.
Thanks in advance
If your "local machines" are always connected to the server, you don't need a local database - you can connect directly to the server as one MySQL server can handle multiple clients...
If, however, your central server is not always available or your clients can go offline and should still be able to work and they synchronize data when they come back online, then what you need to build is an Occasionally Connected Application.
See if you can use any of the recommendations on that page. If I were you, I would start exploring Synchronization Services for ADO.NET (MySQL has a full ADO.NET provider)
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 7 years ago.
Improve this question
I am planning on writing and commercialising a C# app which will store data in an underlying database
I use MySQL on my environment for my own development and this is what I would have used to write the application for myself (no need to use FK - MyISAM engine would be fine).
I am concerned about how easy it will be to distribute the app together with the database engine.
Would using MySQL allow me for easy packaging of the app for a "one-click" install on the client side? (ie I do not want them to have to install MySQL by themselves) and also is it feasible from a licensing point of view?
Are there other Database systems which would make the process more straight-forward
Take a look at SQL Server Compact 3.5
Sqlite is very simple. You just deploy the DLL with your app. I can't tell how appropriate it is for your situation, given the lack of info.
I think SQLite could do the trick, as it is a filesystem-based database, so no installation required.
Access could also do the trick, and most of businesses have it already installed as part of Microsoft Office, though you wouldn't need it to be installed in order to use the Odbc or OleDb assemblies that are part of the GAC.
The key here is what kind of database you need. Is this database to be shared among several users of the app? If so, than MySQL would be fine.
But it sounds more like you intend to use this database as a private data store, where each installed instance of the application has it's own data local to that machine or profile. In that case, you want an in-process engine like Sql Server Compact Edition, Sqlite, or even Access rather than a server-class engine like MySql or Sql Server Express Edition.
I think, that an embedded DBMS is the best way for yor. For example, you can use Firebird Embedded
SQL Server 2008 Express is available for redistribution by ISVs. You an also deploy this using Microsoft Web Platform Installer.
SQL Server Express is another option. Has excellent integration with .NET, free to install and supports upto 10GB per database (or more if you use the Filestream feature).