表关联的问题
如下有三个表,分别是专辑表、产品表、图片表。
要求:专辑能同时存入产品和图片。
请问要怎么表达这三者的关系?
我分析了一下,专辑和产品是多对多的关系,专辑和图片也是多对多的关系。
难道要设计两个中间表吗?
回复讨论(解决方案)
可以在 专辑表、产品表 之间再建个表,里面存 产品id 专辑id(用逗号隔开)
图片和专辑同理
如上面所说,产品id 专辑id,最好每个表里都有,这样就可以相互关联了。
可以在 专辑表、产品表 之间再建个表,里面存 产品id 专辑id(用逗号隔开)
图片和专辑同理
我也有想过这种方法,如果要查询同一个专辑里的产品和图片要分开查询吗?
如果保存的是用逗号连接的产品id和图片id,那么就没有必要另外建表了
建立过渡表的目的是为了高速访问,你若把目标id连接成串,就无法使用索引了
如果保存的是用逗号连接的产品id和图片id,那么就没有必要另外建表了
建立过渡表的目的是为了高速访问,你若把目标id连接成串,就无法使用索引了
我的原意就是要建立第三张过渡表。只是这三者的关系,要怎么设计这个过渡表。
专题id 产品id 图片id
一般情况下,产品和图片一一对应
所以表的稀疏度不会太大
专题id 产品id 图片id
一般情况下,产品和图片一一对应
所以表的稀疏度不会太大
我这个系统里面,产品和图片是两个实体来的。分开两个表的。这个图片不是产品图片。
那就分开来
专题id 产品id
专题id 图片id
既然是两个实体,那么你为什么要硬扯在一起呢? 难道要设计两个中间表吗?
那就分开来
专题id 产品id
专题id 图片id
既然是两个实体,那么你为什么要硬扯在一起呢? 难道要设计两个中间表吗?
因为专辑里可以存这两个实体。如果同一个专辑同时出现这两个实体的话。要怎么查询
select * from A left join A_B on A.id=A_B.aid left join A_C on A.id=A_C.aid
select * from A left join A_B on A.id=A_B.aid left join A_C on A.id=A_C.aid
现在你说的只是专辑表和两个中间表A_B,A_C的联合查询。但是中间表只是存两个表的主键,如果要查具体的信息,比如图形表和产品表的信息。是不是要继续left join 图形表 ,left join 产品表。
那是当然的!
但只需要 INNER JOIN 就可以了
那是当然的!
但只需要 INNER JOIN 就可以了
好的,谢谢,版主的帮助!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen





Alipay PHP ...

Die Hijacking der Sitzung kann in den folgenden Schritten erreicht werden: 1. Erhalten Sie die Sitzungs -ID, 2. Verwenden Sie die Sitzungs -ID, 3. Halten Sie die Sitzung aktiv. Zu den Methoden zur Verhinderung der Sitzung der Sitzung in PHP gehören: 1. Verwenden Sie die Funktion Session_regenerate_id (), um die Sitzungs -ID zu regenerieren. 2. Store -Sitzungsdaten über die Datenbank, 3. Stellen Sie sicher, dass alle Sitzungsdaten über HTTPS übertragen werden.

JWT ist ein offener Standard, der auf JSON basiert und zur sicheren Übertragung von Informationen zwischen Parteien verwendet wird, hauptsächlich für die Identitätsauthentifizierung und den Informationsaustausch. 1. JWT besteht aus drei Teilen: Header, Nutzlast und Signatur. 2. Das Arbeitsprinzip von JWT enthält drei Schritte: Generierung von JWT, Überprüfung von JWT und Parsingnayload. 3. Bei Verwendung von JWT zur Authentifizierung in PHP kann JWT generiert und überprüft werden, und die Funktionen und Berechtigungsinformationen der Benutzer können in die erweiterte Verwendung aufgenommen werden. 4. Häufige Fehler sind Signaturüberprüfungsfehler, Token -Ablauf und übergroße Nutzlast. Zu Debugging -Fähigkeiten gehört die Verwendung von Debugging -Tools und Protokollierung. 5. Leistungsoptimierung und Best Practices umfassen die Verwendung geeigneter Signaturalgorithmen, das Einstellen von Gültigkeitsperioden angemessen.

Die Anwendung des soliden Prinzips in der PHP -Entwicklung umfasst: 1. Prinzip der Einzelverantwortung (SRP): Jede Klasse ist nur für eine Funktion verantwortlich. 2. Open and Close Principle (OCP): Änderungen werden eher durch Erweiterung als durch Modifikation erreicht. 3.. Lischs Substitutionsprinzip (LSP): Unterklassen können Basisklassen ersetzen, ohne die Programmgenauigkeit zu beeinträchtigen. 4. Schnittstellen-Isolationsprinzip (ISP): Verwenden Sie feinkörnige Schnittstellen, um Abhängigkeiten und nicht verwendete Methoden zu vermeiden. 5. Abhängigkeitsinversionsprinzip (DIP): Hoch- und niedrige Module beruhen auf der Abstraktion und werden durch Abhängigkeitsinjektion implementiert.

So setzen Sie die Berechtigungen von Unixsocket automatisch nach dem Neustart des Systems. Jedes Mal, wenn das System neu startet, müssen wir den folgenden Befehl ausführen, um die Berechtigungen von Unixsocket: sudo ...

Wie debugge ich den CLI -Modus in PhpStorm? Bei der Entwicklung mit PHPSTORM müssen wir manchmal den PHP im CLI -Modus (COMS -Zeilenschnittstellen) debuggen ...

Statische Bindung (statisch: :) implementiert die späte statische Bindung (LSB) in PHP, sodass das Aufrufen von Klassen in statischen Kontexten anstatt Klassen zu definieren. 1) Der Analyseprozess wird zur Laufzeit durchgeführt.

Senden von JSON -Daten mithilfe der Curl -Bibliothek von PHP in der PHP -Entwicklung müssen häufig mit externen APIs interagieren. Eine der gängigen Möglichkeiten besteht darin, die Curl Library zu verwenden, um Post � ...
