Phil, I think I agree with your approach, and I would count myself as one of the enthusiastic people.
To have my say on your questions:
- I wouldn't support merged cells. I think it would cause too much confusion in situations that didn't involve spreadsheets.
- The format should allow more than one table, otherwise it's not adding enough value
- Foreign key references and constraints should themselves take the form of tables in the file.Here's another example:
1|Joe Brighton|2 Simple Terrace[nl]Manchester
2|Mary Bondi|18 Ocean Road[nl]Sydney
3|Sam Shore|21 Breaker Way[nl]Adelaide
1|The Road to Brighton|1
2|Brighton and beyond|1
3|Back to Bondi|2
4|By the shore|3
This example illustrates a few more points about the RDX format:
- The foreign key constraints are defined by the reserved table RdxForeignKeys. You can see that the AuthorId in the Books table refers to the AuthorId in the Authors table.
- Other constraints (datatypes, primary keys, value ranges) could similarly be defined by other reserved tables defined in the standard. This has the benefit of not mixing up the formatting of data within the file. Everything just remains a table.
- Blank lines are supported by the format by being completely ignored. They are useful for separating tables though.
- The [nl] escape sequence represents my current thinking on how to embed a new line character within a record. I prefer it to as it seems easier to read, which I think is a key requirement for the standard. Other escape sequences would be needed to represent the other special characters in the format.