diff options
Diffstat (limited to 'srcs/phpmyadmin/doc/html/_sources/relations.txt')
| -rw-r--r-- | srcs/phpmyadmin/doc/html/_sources/relations.txt | 84 |
1 files changed, 84 insertions, 0 deletions
diff --git a/srcs/phpmyadmin/doc/html/_sources/relations.txt b/srcs/phpmyadmin/doc/html/_sources/relations.txt new file mode 100644 index 0000000..96643de --- /dev/null +++ b/srcs/phpmyadmin/doc/html/_sources/relations.txt @@ -0,0 +1,84 @@ +.. _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` |
