Как классифицировать статьи, представленные в базе данных sql? - PullRequest
5 голосов
/ 10 февраля 2012

Как классифицировать статью, отправляемую в базу данных sql, чтобы, когда пользователь захотел опубликовать статью в определенной категории, ему было предоставлено выпадающее меню, чтобы выбрать, какую статью опубликовать в этой категории. О нас, продуктах и ​​поддержке являются примерами категорий

<form method="post" action="postArticle.php">
<p>
    <select name="selectedOption">
        <optgroup label="About us">
            <option value="about">About us</option>
        </optgroup>

        <optgroup label="Products">
            <option value="foo">Foo</option>
            <option value="oof">Oof</option>
        </optgroup>

        <optgroup label="Support">
            <option value="support">Support</option>
        </optgroup>
    </select>
</p>

Ответы [ 2 ]

1 голос
/ 10 февраля 2012

На первый взгляд может показаться, что вам нужна простая таблица для реализации структуры, которая позволила бы вам создать вложенный массив структуры категории.Любая категория с parent_id == 0 является optgroup, и тогда вы бы перечислили каждую подкатегорию как option внутри каждого родителя optgroup.

category_id    | parent_id    | category_name
1              | 0            | About us
2              | 1            | About us
3              | 0            | Products
4              | 3            | foo
5              | 3            | oof
6              | 0            | Support
7              | 6            | Support

Это будет выведено как:

<form method="post" action="postArticle.php">
<p>
    <select name="selectedOption">
        <optgroup label="About us">
            <option value="2">About us</option>
        </optgroup>

        <optgroup label="Products">
            <option value="4">Foo</option>
            <option value="5">Oof</option>
        </optgroup>

        <optgroup label="Support">
            <option value="6">Support</option>
        </optgroup>
    </select>
</p>

Очевидно, что затем вы можете сохранить значение из выбора в таблице товаров для ссылки на таблицу категорий.Обратите внимание, что вы не можете выбрать родительские категории в приведенном выше, только подкатегории (что вы можете иметь в виду).Очевидно, что если бы у вас было много групп только с одной подкатегорией (которая дублирует имя родительской категории), то это не очень эффективно, и вы можете посмотреть, как вы структурируете свои категории, или вместо этого вы можете отказатьсяoptgroup в целом и просто визуально сделать отступ для меток подкатегорий в каждой категории.Таким образом, каждая категория (включая родителей) становится option и может быть выбрана, чего вы, возможно, не хотите.

0 голосов
/ 10 февраля 2012

Лучше всего иметь таблицу Category, в которой хранятся доступные категории.Затем, используя идентификатор каждой строки, создайте поле category_id в таблице статей для хранения идентификатора категории для каждой статьи.Это будет внешний ключ к таблице категорий.

После этого вы получите информацию об этой категории статей.И наоборот, вы можете выбрать все статьи из данной категории.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...