/usr/share/doc/phpmyadmin/html/_sources
NameSizeModeActions
bookmarks.rst.txt24630644editdlrm
charts.rst.txt47430644editdlrm
config.rst.txt1205100644editdlrm
copyright.rst.txt16210644editdlrm
credits.rst.txt280210644editdlrm
developers.rst.txt3800644editdlrm
faq.rst.txt948090644editdlrm
glossary.rst.txt151550644editdlrm
import_export.rst.txt102130644editdlrm
index.rst.txt5730644editdlrm
intro.rst.txt31550644editdlrm
other.rst.txt9160644editdlrm
privileges.rst.txt32640644editdlrm
relations.rst.txt33420644editdlrm
require.rst.txt16830644editdlrm
security.rst.txt46070644editdlrm
settings.rst.txt10150644editdlrm
setup.rst.txt434030644editdlrm
themes.rst.txt29380644editdlrm
transformations.rst.txt79490644editdlrm
two_factor.rst.txt28730644editdlrm
user.rst.txt1950644editdlrm
vendors.rst.txt19690644editdlrm
Edit: /usr/share/doc/phpmyadmin/html/_sources/relations.rst.txt (3342B)
.. _relations: Relations ========= phpMyAdmin allows relationships (similar to foreign keys) using MySQL-native (InnoDB) methods when available and falling back on special phpMyAdmin-only features when needed. There are two ways of editing these relations, with the *relation view* and the drag-and-drop *designer* -- both of which are explained on this page. .. note:: You need to have configured the :ref:`linked-tables` for using phpMyAdmin only relations. Technical info -------------- Currently the only MySQL table type that natively supports relationships is InnoDB. When using an InnoDB table, phpMyAdmin will create real InnoDB relations which will be enforced by MySQL no matter which application accesses the database. In the case of any other table type, phpMyAdmin enforces the relations internally and those relations are not applied to any other application. Relation view ------------- In order to get it working, you first have to properly create the [[pmadb|pmadb]]. Once that is setup, select a table's "Structure" page. Below the table definition, a link called "Relation view" is shown. If you click that link, a page will be shown that offers you to create a link to another table for any (most) fields. Only PRIMARY KEYS are shown there, so if the field you are referring to is not shown, you most likely are doing something wrong. The drop-down at the bottom is the field which will be used as the name for a record. Relation view example +++++++++++++++++++++ .. image:: images/pma-relations-relation-view-link.png .. image:: images/pma-relations-relation-link.png Let's say you have categories and links and one category can contain several links. Your table structure would be something like this: - `category.category_id` (must be unique) - `category.name` - `link.link_id` - `link.category_id` - `link.uri`. Open the relation view (below the table structure) page for the `link` table and for `category_id` field, you select `category.category_id` as master record. If you now browse the link table, the `category_id` field will be a clickable hyperlink to the proper category record. But all you see is just the `category_id`, not the name of the category. .. image:: images/pma-relations-relation-name.png To fix this, open the relation view of the `category` table and in the drop down at the bottom, select "name". If you now browse the link table again and hover the mouse over the `category_id` hyperlink, the value from the related category will be shown as tooltip. .. image:: images/pma-relations-links.png Designer -------- The Designer feature is a graphical way of creating, editing, and displaying phpMyAdmin relations. These relations are compatible with those created in phpMyAdmin's relation view. To use this feature, you need a properly configured :ref:`linked-tables` and must have the :config:option:`$cfg['Servers'][$i]['table_coords']` configured. To use the designer, select a database's structure page, then look for the :guilabel:`Designer` tab. To export the view into PDF, you have to create PDF pages first. The Designer creates the layout, how the tables shall be displayed. To finally export the view, you have to create this with a PDF page and select your layout, which you have created with the designer. .. seealso:: :ref:`faqpdf`