In a program I am writing, I have 3 different ways to store user generated data:
(a) XML Files for each object (.Net Serialization)
(b) SQL Database (MSSQL)
(c) Massive terrifying blob of data in 1 file (I'm against this one)
There is absolutely no theoretical difference in performance or file size in this (hypothetical) scenario, but which would be best to use?
Is SQL overkill (Considering that there will be up to 2 million items in database), or the best option? Where does the line get drawn between BLOB, XML, and SQL?
The index would either link to the filename (a GUID) or a SQL item id (a GUID), so there is not difference in search functionality. The XML is stored in multiple files and file size is not much of a concern, so you would not need to parse the entire thing to access a specific item (Just open a file stream to {GUID}.xml)
Edit: I'm adding some more info to make it more clear what I'm asking.
I am working on a program for a client who is in the perfume design industry. In all cases, the search index will be separate (Someone else's code that I don't dare touch), and will be indexed in memory.
Random access of data isn't needed in this case, as people would be pulling up the full information for a single item.
In a much more clear way of saying: If you do not need to access random data in a database, and XML is easier, is it ok to use that instead of an SQL file?
Edit II: Either way, it will be installed on a large server, so, I am not concerned about the client having access to MSSQL or not having enough space for ~1KB extra per entry (If not using SQL). Edit III: I am only doing single select all queries (E.g. SELECT * FROM (DB) WHERE ID = (GUID)) Or (Xml.deserialize((GUID).xml))