How to plan the column structure and classification for a single backend to manage multiple sites without conflict
When managing multiple sites with a single background, how to plan the column structure and classification so that they do not interfere with each other? The key is to separate the 'reusable definition' and 'data that must be isolated': the definition of the content model can be shared among multiple sites, and the classification tree, column alias, and access scope must be maintained separately for each site; batch operations that affect the entire site are high-risk capabilities, which are closed by default and need to be opened separately for each site as needed.
What things are inherently shared in multi-site management
AnQiCMS's multi-site management capability is to hang multiple independent sites in the same background, with each site having its own domain name, template and content library. What is shared is the program layer and definition layer: the same program code, the same set of content model definitions, and the same batch of administrator roles; what is independent is the data layer: each site's articles, categories, tags, sitemap, and access logs are counted separately.
Determine whether a configuration should be shared or isolated, you can ask a question: Will it affect the content seen by readers on another site after modification? If so, isolate by site; if it only reduces the editor's repetitive labor, it can be shared.
Three ways to split the category tree by site
The first is to split by brand. Each site has an independent tree, and the same column name is allowed to exist because the scope has been isolated by the site. It is suitable for the coexistence of the main site and sub-brand sites.
The second type is segmented by language. Multi-language sites share the same theme structure, and column names use different language versions of the same set of theme words to avoid the number of columns in the translated site being inconsistent with the main site, leading to incorrect classification of the main text.
The third type is segmented by business isolation. The corporate website and information site share the same backend, but the categories of the information site are not allowed to appear in the navigation of the corporate website. In this case, in addition to checking the category itself, you also need to check the column alias and address prefix to prevent the two sites from growing into identical URLs.
| Configuration item | Suggested attribution | Reason |
|---|---|---|
| Content model definition | common | Consistent field structure can reduce redundant maintenance |
| Classification tree and hierarchy | Independent by site | If the site theme is different, forcing unity will force out empty categories. |
| Column alias and address prefix | Independent by site | Alias collision will directly affect the pseudo-static address |
| Tag | Independent by site | Tags will be referenced by anchor text and recommended positions |
| Site map | Generated separately by site | The scope of collection must be consistent with the site content |
| Full site replacement, batch change columns | Default closed, opened by site | One wrong operation will affect all sites |
Which layer can the content model be shared on
Custom content models support flexible content structures, and it is a common practice to define a model that can be reused across multiple sites. The reusable part is the collection of fields, such as 'products', 'help documents', and 'cases', and which custom fields they each have; the non-reusable part is the filling strategy and display rules of the fields, as the depth of columns and navigation positions differ between sites.
In practice, it is recommended to retain a 'site-level coverage' layer: the model definition is unified, and when it comes to a specific site, it is allowed to enable only a part of the fields. Do not display empty fields, and do not force a site to fill in meaningless columns for the sake of a unified structure.
Why the standalone operation for the entire station
The risk of cross-site batch operation lies in the easy to ignore scope. Backup and recovery, upgrade, and switching between multiple sites all belong to the entire station operation, such high-risk capabilities are not exposed by default on the interface and automation side, and need to be explicitly enabled; still need to confirm the scope of the selected site before execution, don't take the 'selected site' as 'all sites'.
A rule that can be implemented: any action that will change multiple text or column structures at one time, first run on one site, check the results before expanding to the second site.
Implement the plan in this order.
First, determine the list of sites and the boundaries of each site, then define the common model, and then build the classification tree and alias rules for each site one by one, and finally configure the navigation and site map. After each step is completed, check three things: whether the new address is duplicated with another site, whether the navigation only appears in the classification of this site, and whether all addresses in the site map belong to this site.
Common questions
Can the column names of two sites be the same?Yes, the scope of the classification name is within the site, but the addresses generated by the column alias should avoid cross-site duplication.
Should a separate set of categories be built for multilingual sites?It is recommended to continue to use the same thematic structure, only changing the language writing, which is convenient for the translation of the entire page, so that the text can still match the location.
How to converge after it has been disorganized?First, list the correspondence between the categories to be retained and the articles in a table, use the site-wide replacement tool to batch change the existing expressions, and then inspect, backup, and navigate separately by site after the changes are made.
The content model has changed fields, will it affect another site?The shared definition means that the field structure changes at the same time, confirm that both sites can accept the new fields before making changes, and then fill in the data separately.