sql >> Database >  >> Database Tools >> phpMyAdmin

Database relaties met behulp van phpmyAdmin (samengestelde sleutels)

NULL-waarden

Het betekent ook dat het item 5 id's zal hebben, inclusief zijn eigen. Dit veroorzaakt allemaal null-waarden (blijkbaar een grote nee-nee, wat ik kan begrijpen) want als plaats en prijs optioneel zijn en niet worden gebruikt voor één item in de itemstabel, heb ik daar een null-waarde

Persoonlijk denk ik dat dit een situatie is waarin NULL waarden zijn perfect, en ik zou zeker geen twijfel hebben om dit in mijn database-ontwerp te plaatsen.

Op één manier heb ik anderen hetzelfde zien bereiken zonder NULL waarden is om een ​​record te maken in de optionele tabellen (plaats en prijs in uw voorbeeld) met een ID van 0, wat betekent dat er geen gerelateerde record is - maar dit maakt de ontwikkelaar van de applicatie gewoon 10 keer meer werk om deze records eruit te filteren - het is VEEL eenvoudiger om een ​​join te doen en als u geen records terugkrijgt, zijn er geen gerelateerde records in de optionele tabel.

Vergeet niet om een ​​LEFT te doen of RIGHT OUTER doe mee als je Item wilt retourneren s ongeacht of ze een Place . hebben of Price gekoppeld (u krijgt NULL waarden in de optionele tabelkolommen voor Item s die geen bijbehorende records hebben) en een INNER doe mee als je alleen wil het Item is dat doen een bijbehorend optioneel record hebben.

Samengestelde toetsen

Een samengestelde sleutel is een sleutel in een tabel die uit meer dan één kolom bestaat. Als elk van uw Person , Item , Place en Price hebben allemaal een ID (zelfs als het slechts een automatisch oplopend nummer is) je hebt geen samengestelde sleutel nodig - alleen een primaire sleutelkolom in elke tabel en een externe sleutelkolom in het Item tabel voor elke gerelateerde tabel - bijv. item_id , person_id , place_id , price_id . U geeft aan dat Item heeft zijn eigen ID, dus u zou geen samengestelde sleutel nodig moeten hebben - alleen een primaire sleutel op de item_id kolom.




  1. Hoe de gebruikersnaam en het wachtwoord van phpmyadmin in te stellen

  2. Waarom wordt mijn nieuwe schema niet weergegeven in het deelvenster met tabeleigenschappen?

  3. Query ZEER traag (>30s) in php, maar snel bij het uitvoeren van de query in phpmyadmin

  4. Hoe wijzig ik in SSMS de tabnaam van een SQL-queryvenster?