From 3039ab0ff848687379b4cca7ac945308ab8d2983 Mon Sep 17 00:00:00 2001 From: Matt Nadareski Date: Thu, 22 Dec 2022 10:42:03 -0800 Subject: [PATCH] Add rudimentary header table --- In-Memory Database Design.md | 46 +++++++++++++++++++++++++++++++++++- 1 file changed, 45 insertions(+), 1 deletion(-) diff --git a/In-Memory Database Design.md b/In-Memory Database Design.md index c0971bd9..f32b22da 100644 --- a/In-Memory Database Design.md +++ b/In-Memory Database Design.md @@ -28,4 +28,48 @@ There's another hard part here: should there be separate tables for each item ty ## Design -This section is reserved for database design ideas. \ No newline at end of file +This section is reserved for database design ideas. + +### (WIP) Header Table + +Should there be separate internal header models for every DAT type that has a header? +Should there be multiple tables for "extensions" to the header? Like things that are only in OfflineList, etc. + +| Column Name | Description | Notes | +| --- | --- | --- | +| ID | DAT ID | This should either be sequential or GUID-based, primary key, not in current model | +| FileName | External name of the DAT | This should be a full file path, not just the filename with extension | +| Name | Internal name of the DAT | | +| Description | DAT description | | +| RootDir | Root directory for the files | Currently TruRip/EmuARC-exclusive | +| Category | General category of items found in the DAT | | +| Version | Version of the DAT | | +| Date | Creation or modification date | | +| Author | List of authors who contributed to the DAT | | +| Email | Email address for DAT author(s) | | +| Homepage | Author or distribution homepage name | | +| Url | Author or distribution URL | | +| Comment | Any comment that does not already fit an existing field | | +| HeaderSkipper | Header skipper to be used when loading the DAT | | +| Type | Classification of the DAT | Generally only used for SuperDAT | +| ForceMerging | Force a merging style when loaded | | +| ForceNodump | Force nodump handling when loaded | | +| ForcePacking | Force output packing when loaded | | +| DatFormat | Read or write format | | +| Debug | Debug build flag | *ListXML and Logiqx | +| MameConfig | MAME configuration name | *ListXML | +| Build | Build version | *Logiqx | +| System | Logiqx/RomCenter plugin, OfflineList System | *Logiqx, OfflineList | +| RomMode | RomCenter rom mode | *Logiqx | +| BiosMode | RomCenter bios mode | *Logiqx | +| SampleMode | RomCenter sample mode | *Logiqx | +| LockRomMode | RomCenter lock rom mode | *Logiqx | +| LockBiosMode | RomCenter lock bios mode | *Logiqx | +| LockSampleMode | RomCenter lock sample mode | *Logiqx | +| ScreenshotsWidth | Screenshots width | *OfflineList | +| ScreenshotsHeight | Screenshots height | *OfflineList | +| Infos | OfflineList info list | List of objects, how to handle? *OfflineList | +| CanOpen | OfflineList can-open extensions | List of strings, how to handle? *OfflineList | +| (MISSING) | (MISSING) | See `DatHeader.cs` for missing fields. *OfflineList | +| RomTitle | Rom title | *OfflineList | +| RomCenterVersion | RomCenter DAT format version | *RomCenter |