We need to figure out what the site table is going to be. Our first class data source or a table like pagelinks indexed from other sources.
First-class
If it's a first-class data source like interwiki was we'll be doing all of our editing on the site table. Anything done through a web interface will rely on our limited log system. We'll need to come up with some way to do synchronization without making the UI and sync fight each other.
Advantages:
- We don't have to write code for rebuilding the table.
Index
If the site table is an index we'll have a setting for configuring the source that site data comes from and the rows in the sites table will be rebuilt from that data instead of edited.
Advantages:
- Synchronization can be done using that source configuration. We'll just have a source type that uses the site data from another wiki. Probably two, one that looks at the site table in another wiki's database and another that uses the API.
- We will not be restricted to editing the site table. We can take our time implementing the UI for the sites system if we implement a source that reads sites from a text file first and use that. Or read it from a wiki page. Additionally when we do implement the web UI we can implement it with a proper system that tracks the history of modifications to each site instead of just using a log table.