Heim Datenbank MySQL-Tutorial 数据库结构中的"树"

数据库结构中的"树"

Jun 07, 2016 pm 03:06 PM
数据库 管理系统 结构 项目

最近接触了一个项目,是一个题库管理系统.其中有这样一部分需求 一、学校基础信息管理 二、部门基础信息管理 三、班级信息管理 四、对于试题的搜索有如下分类 1、按章节分 语文第一章 第一节知识点 数学第一单元第一节知识点 政治第一课 第一节知识点 2、按版

    最近接触了一个项目,是一个题库管理系统.其中有这样一部分需求
一、学校基础信息管理
二、部门基础信息管理
三、班级信息管理
四、对于试题的搜索有如下分类
1、按章节分

语文→第一章   →第一节→知识点
数学→第一单元→第一节→知识点
政治→第一课   →第一节→知识点

2、按版块分
科目→版块1→知识点
科目→版块2→知识点
科目→版块2→知识点
科目→版块3→知识点

(其它省略)

按一般的思路,我想有人会这样建表
数据库结构中的"树"数据库结构中的"树"数据库结构中的"树"

对于试题的分类可能方法就多了,
刚学不久的可以会"在题目表里面,建立N个字段,这题是属于那个'科目',那个'版块'...."
聪明一些的可以会"把类型提出来,放在其它表里面,但是加几个表呢?"

其实上面的需求还隐藏着一些东西,
一、系统以后面对的可能不是一个学校,而是一个地区了几个学校,学校是属于那个区?那个省?
      那么我们需要增加表嘛?(没事,到时候加二个表,改一改代码就行了,反正用不了多少时间。)
二、题目的分类,各个学校分类都一样嘛?(我们是权威机构,要求他们必需按我们的要求分类,这公司太强了。)
      “第一节”下面也许会出现“第一小节”,“版块”下面又要分个“XX版块”。加字段还是加表?
(呵呵!经历过)

试试下面的方法建表。
数据库结构中的"树"

认真一点分析,我们会发现,其实这些东西都是一级一级的,都互相有联系,与“树”很像。
而且用树来存储这些数据,还非常容易扩展,无论你在学校上面再怎么划分,在科目下面再怎么分“小节”都很容易办到,而且不用改数据库。程序写的好,程序也不用改。

当然上面的树可以根据实际项目需要,增加或删除一些字段。

我想对于有经验的程序员应该是很熟悉“树”在项目中的应用,大型的系统肯定少不了这种结构。



Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Repo: Wie man Teamkollegen wiederbelebt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Abenteuer: Wie man riesige Samen bekommt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Kann KI Fermats letzten Satz überwinden? Der Mathematiker gab fünf Jahre seiner Karriere auf, um 100 Beweisseiten in Code umzuwandeln Kann KI Fermats letzten Satz überwinden? Der Mathematiker gab fünf Jahre seiner Karriere auf, um 100 Beweisseiten in Code umzuwandeln Apr 09, 2024 pm 03:20 PM

Fermats letzter Satz steht kurz davor, von der KI erobert zu werden? Und das Bedeutsamste an der ganzen Sache ist, dass der letzte Satz von Fermat, den die KI gerade lösen wird, genau dazu dient, zu beweisen, dass KI nutzlos ist. Früher gehörte die Mathematik zum Bereich der reinen menschlichen Intelligenz; heute wird dieses Gebiet von fortschrittlichen Algorithmen entschlüsselt und mit Füßen getreten. Bild Der letzte Satz von Fermat ist ein „berüchtigtes“ Rätsel, das Mathematikern seit Jahrhunderten Rätsel aufgibt. Es wurde 1993 bewiesen, und jetzt haben Mathematiker einen großen Plan: den Beweis mithilfe von Computern nachzubilden. Sie hoffen, dass etwaige logische Fehler in dieser Version des Beweises durch einen Computer überprüft werden können. Projektadresse: https://github.com/riccardobrasca/flt

Wie implementiert die Go-Sprache die Hinzufügungs-, Lösch-, Änderungs- und Abfragevorgänge der Datenbank? Wie implementiert die Go-Sprache die Hinzufügungs-, Lösch-, Änderungs- und Abfragevorgänge der Datenbank? Mar 27, 2024 pm 09:39 PM

Die Go-Sprache ist eine effiziente, prägnante und leicht zu erlernende Programmiersprache. Sie wird von Entwicklern aufgrund ihrer Vorteile bei der gleichzeitigen Programmierung und Netzwerkprogrammierung bevorzugt. In der tatsächlichen Entwicklung sind Datenbankoperationen ein unverzichtbarer Bestandteil. In diesem Artikel wird erläutert, wie die Go-Sprache zum Implementieren von Datenbank-Hinzufügungs-, Lösch-, Änderungs- und Abfrageoperationen verwendet wird. In der Go-Sprache verwenden wir normalerweise Bibliotheken von Drittanbietern, um Datenbanken zu betreiben, z. B. häufig verwendete SQL-Pakete, Gorm usw. Hier nehmen wir das SQL-Paket als Beispiel, um vorzustellen, wie die Hinzufügungs-, Lösch-, Änderungs- und Abfragevorgänge der Datenbank implementiert werden. Angenommen, wir verwenden eine MySQL-Datenbank.

Ausführliches Tutorial zum Herstellen einer Datenbankverbindung mit MySQLi in PHP Ausführliches Tutorial zum Herstellen einer Datenbankverbindung mit MySQLi in PHP Jun 04, 2024 pm 01:42 PM

So verwenden Sie MySQLi zum Herstellen einer Datenbankverbindung in PHP: MySQLi-Erweiterung einbinden (require_once) Verbindungsfunktion erstellen (functionconnect_to_db) Verbindungsfunktion aufrufen ($conn=connect_to_db()) Abfrage ausführen ($result=$conn->query()) Schließen Verbindung ( $conn->close())

Wie implementiert Hibernate polymorphe Zuordnung? Wie implementiert Hibernate polymorphe Zuordnung? Apr 17, 2024 pm 12:09 PM

Die polymorphe Hibernate-Zuordnung kann geerbte Klassen der Datenbank zuordnen und bietet die folgenden Zuordnungstypen: Joined-Subclass: Erstellen Sie eine separate Tabelle für die Unterklasse, einschließlich aller Spalten der übergeordneten Klasse. Tabelle pro Klasse: Erstellen Sie eine separate Tabelle für Unterklassen, die nur unterklassenspezifische Spalten enthält. Union-Unterklasse: ähnelt der verbundenen Unterklasse, aber die Tabelle der übergeordneten Klasse vereint alle Spalten der Unterklasse.

iOS 18 fügt eine neue Albumfunktion „Wiederhergestellt' hinzu, um verlorene oder beschädigte Fotos wiederherzustellen iOS 18 fügt eine neue Albumfunktion „Wiederhergestellt' hinzu, um verlorene oder beschädigte Fotos wiederherzustellen Jul 18, 2024 am 05:48 AM

Apples neueste Versionen der iOS18-, iPadOS18- und macOS Sequoia-Systeme haben der Fotoanwendung eine wichtige Funktion hinzugefügt, die Benutzern dabei helfen soll, aus verschiedenen Gründen verlorene oder beschädigte Fotos und Videos einfach wiederherzustellen. Mit der neuen Funktion wird im Abschnitt „Extras“ der Fotos-App ein Album mit dem Namen „Wiederhergestellt“ eingeführt, das automatisch angezeigt wird, wenn ein Benutzer Bilder oder Videos auf seinem Gerät hat, die nicht Teil seiner Fotobibliothek sind. Das Aufkommen des Albums „Wiederhergestellt“ bietet eine Lösung für Fotos und Videos, die aufgrund einer Datenbankbeschädigung verloren gehen, die Kameraanwendung nicht korrekt in der Fotobibliothek speichert oder eine Drittanbieteranwendung die Fotobibliothek verwaltet. Benutzer benötigen nur wenige einfache Schritte

Was sind die Syntax- und Strukturmerkmale von Lambda-Ausdrücken? Was sind die Syntax- und Strukturmerkmale von Lambda-Ausdrücken? Apr 25, 2024 pm 01:12 PM

Der Lambda-Ausdruck ist eine anonyme Funktion ohne Namen und seine Syntax lautet: (parameter_list)->Ausdruck. Sie zeichnen sich durch Anonymität, Vielfalt, Currying und Schließung aus. In praktischen Anwendungen können Lambda-Ausdrücke verwendet werden, um Funktionen prägnant zu definieren, beispielsweise die Summationsfunktion sum_lambda=lambdax,y:x+y, und die Funktion map() auf die Liste anzuwenden, um die Summationsoperation durchzuführen.

Eine ausführliche Analyse, wie HTML die Datenbank liest Eine ausführliche Analyse, wie HTML die Datenbank liest Apr 09, 2024 pm 12:36 PM

HTML kann die Datenbank nicht direkt lesen, dies kann jedoch über JavaScript und AJAX erreicht werden. Zu den Schritten gehören das Herstellen einer Datenbankverbindung, das Senden einer Abfrage, das Verarbeiten der Antwort und das Aktualisieren der Seite. Dieser Artikel bietet ein praktisches Beispiel für die Verwendung von JavaScript, AJAX und PHP zum Lesen von Daten aus einer MySQL-Datenbank und zeigt, wie Abfrageergebnisse dynamisch auf einer HTML-Seite angezeigt werden. In diesem Beispiel wird XMLHttpRequest verwendet, um eine Datenbankverbindung herzustellen, eine Abfrage zu senden und die Antwort zu verarbeiten. Dadurch werden Daten in Seitenelemente gefüllt und die Funktion des HTML-Lesens der Datenbank realisiert.

Analyse der Grundprinzipien des MySQL-Datenbankverwaltungssystems Analyse der Grundprinzipien des MySQL-Datenbankverwaltungssystems Mar 25, 2024 pm 12:42 PM

Analyse der Grundprinzipien des MySQL-Datenbankverwaltungssystems MySQL ist ein häufig verwendetes relationales Datenbankverwaltungssystem, das eine strukturierte Abfragesprache (SQL) zur Datenspeicherung und -verwaltung verwendet. In diesem Artikel werden die Grundprinzipien des MySQL-Datenbankverwaltungssystems vorgestellt, einschließlich Datenbankerstellung, Datentabellenentwurf, Datenhinzufügung, -löschung, -änderung und anderer Vorgänge, und spezifische Codebeispiele bereitgestellt. 1. Datenbankerstellung In MySQL müssen Sie zunächst eine Datenbankinstanz zum Speichern von Daten erstellen. Der folgende Code kann eine Datei mit dem Namen „my

See all articles