


I would like to ask everyone, when writing an article in the forum, there will be a function to add tags to the article. How should this database be designed?
I have thought that there is an article table, and the tags entered by the user cannot be controlled. In this case, there is no way to manage the tags. For example, if I want to use tags to make a conditional query, it will not work.
Reply content:
I have thought that there is an article table, and the tags entered by the user cannot be controlled. In this case, there is no way to manage the tags. For example, if I want to use tags to make a conditional query, it will not work.
Create a tag table. The tag table contains tag ID, Name, etc. Create a correlation table, then save ArticleID, TagID, and then extract the tag when entering or crawling the article. First determine whether the tag table has already obtained tags, update if not, then store the tag ID in the association table, and then add the article ID. When the time comes to update, it can be taken out directly through the association table, so that it can be displayed successfully.
There are three major paradigms in database design,
1. The fields in the database are atomic and cannot be split. The tags seem to be consistent, but the tags also have separate attributes for the tags. It is inconvenient if the list needs to be filtered out separately based on the tags later.
<code>CREATE TABLE `user_label` ( `id` int(11) NOT NULL AUTO_INCREMENT, `type` tinyint(1) NOT NULL DEFAULT '0' COMMENT '类型', `lable_name` varchar(255) NOT NULL COMMENT '标签名称', `user_id` int(11) NOT NULL COMMENT '创建者', `create_time` datetime NOT NULL COMMENT '创建时间', PRIMARY KEY (`id`), ) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8 COMMENT='标签表';</code>
The
tags are placed in a separate data table, and the post data table is placed in a tags field, separated by |
. The ‘|’ character is not allowed in the tags.
Create a table to store tags. Add a field to the article table to store the tag id. When the user adds a tag, check whether the tag is duplicated and store it in the tag table. Then update the tag field in the article table
Two tables
Create a tag table
An article tag association table, the fields are article ID and tag ID
In this way, when querying, you only need to query the article ID corresponding to the tag in the association table.
This should be a many-to-many relationship in database design. Design three tables: article table tags - article association table tag table. Set dual primary keys in the tag article table, which are the IDs of the tag table and the article table. You can query them Use the join statement to directly filter out the desired results. There is another way to use json to store tag data in the new mysql5.7. This can avoid setting up multiple tables. If the answer is wrong, please point it out. If you are satisfied, please give me a thumbs up. Thank you
I think @ivanilla is right, this table design is almost usable. There is no need to query tag fields associated with multiple tables, and it is simple to use.
I happened to have paper on hand, so I drew a simple E-R diagram
I don’t know if it’s better not to step on it randomly. Although my answer didn’t directly help him solve it, it is still a very good idea. Idiot, I took a detour, thank you

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

PHP 8.4 brings several new features, security improvements, and performance improvements with healthy amounts of feature deprecations and removals. This guide explains how to install PHP 8.4 or upgrade to PHP 8.4 on Ubuntu, Debian, or their derivati

Visual Studio Code, also known as VS Code, is a free source code editor — or integrated development environment (IDE) — available for all major operating systems. With a large collection of extensions for many programming languages, VS Code can be c

This tutorial demonstrates how to efficiently process XML documents using PHP. XML (eXtensible Markup Language) is a versatile text-based markup language designed for both human readability and machine parsing. It's commonly used for data storage an

Java 8 introduces the Stream API, providing a powerful and expressive way to process data collections. However, a common question when using Stream is: How to break or return from a forEach operation? Traditional loops allow for early interruption or return, but Stream's forEach method does not directly support this method. This article will explain the reasons and explore alternative methods for implementing premature termination in Stream processing systems. Further reading: Java Stream API improvements Understand Stream forEach The forEach method is a terminal operation that performs one operation on each element in the Stream. Its design intention is

A string is a sequence of characters, including letters, numbers, and symbols. This tutorial will learn how to calculate the number of vowels in a given string in PHP using different methods. The vowels in English are a, e, i, o, u, and they can be uppercase or lowercase. What is a vowel? Vowels are alphabetic characters that represent a specific pronunciation. There are five vowels in English, including uppercase and lowercase: a, e, i, o, u Example 1 Input: String = "Tutorialspoint" Output: 6 explain The vowels in the string "Tutorialspoint" are u, o, i, a, o, i. There are 6 yuan in total

Capsules are three-dimensional geometric figures, composed of a cylinder and a hemisphere at both ends. The volume of the capsule can be calculated by adding the volume of the cylinder and the volume of the hemisphere at both ends. This tutorial will discuss how to calculate the volume of a given capsule in Java using different methods. Capsule volume formula The formula for capsule volume is as follows: Capsule volume = Cylindrical volume Volume Two hemisphere volume in, r: The radius of the hemisphere. h: The height of the cylinder (excluding the hemisphere). Example 1 enter Radius = 5 units Height = 10 units Output Volume = 1570.8 cubic units explain Calculate volume using formula: Volume = π × r2 × h (4

This time, the Redstone token $RED will be launched on Binance Launchpool on Binance TGE! This is also the first time Binance has launched a pre-market trading limit mechanism! The first day limit is 200%, and the ban will be lifted after 3 days to avoid "the peak will be achieved when the market opens"! Launchpool mechanism introduces the BinanceLaunchpool participating in Redstone that needs to pledge designated tokens (BNB, USDC, FDUSD) activity period is 48 hours: 08:00 UTC on February 26, 2025 to 08:00 UTC on February 28, 2025 ending this pre-market daily limit rule: 18:00 on February 28, 2025

Spring Boot simplifies the creation of robust, scalable, and production-ready Java applications, revolutionizing Java development. Its "convention over configuration" approach, inherent to the Spring ecosystem, minimizes manual setup, allo
