2012-08-31 2 views
1

Я пытаюсь создать что-то, где пользователь может создать таблицу для темы, но только одна таблица тем и в этой таблице тем, добавьте в эту таблицу тем.Разрешить пользователям создавать новую таблицу, но только одну таблицу для каждой темы.

Мне нужна таблица тем, которую нужно создать только один раз. Так например:

Пользователь A создает новую тему, которая представляет собой новую таблицу об апельсинах.

Тогда другие пользователи смогут добавить в эту таблицу апельсинов, но no другие пользователи могут создать другую таблицу под названием апельсины.

Как мне подойти к этому вопросу?

Что такое код для создания пользователями таблицы, но только раз?

Также насколько безопасно предоставлять пользователям возможность создавать таблицы?

Вот некоторый код, который у меня есть, что позволяет пользователям добавлять и отображать данные из базы данных.

<?php 
    include 'connection.php'; 

    $query = "SELECT * FROM people"; 

    $result = mysql_query($query); 

    While($person = mysql_fetch_array($result)) { 
     echo "<h3>" . $person['Name'] . "</h3>"; 
     echo "<p>" . $person['Description'] . "</p>"; 
     echo "<a href=\"modify.php?id=" . $person['ID']. "\">Modify User</a>"; 
     echo "<span> </span>"; 
     echo "<a href=\"delete.php?id=" . $person['ID']. "\">Delete User</a>"; 
    } 
?> 
<h1>Create a User</h1> 
<form action="create.php" method="post"> 
    Name<input type ="text" name="inputName" value="" /><br /> 
    Description<input type ="text" name="inputDesc" value="" /> 
    <br /> 
    <input type="submit" name="submit" /> 
</form> 

Советует вам отличную помощь!

+3

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

+0

Я согласен, что вы не хотите, чтобы у вас было 100 таблиц, с которыми вы объединяетесь, вы должны попытаться по-разному подойти к проблеме, увидеть базу данных как нечто, у которого есть статичная структура, а данные внутри нее будут динамичный. Вы должны писать DDL как разработчик базы данных, не имеющей такого рода вещи, происходящего динамически (могут быть исключения, но это, как правило, верно), DML, который является вашим базовым выбором вставки для удаления CRUD, должен быть использован для изменения данных. – shaunhusain

ответ

0

Ниже приводится код, чтобы позволить пользователю создавать таблицы только один раз:

CREATE TABLE IF NOT EXISTS `orange` (
    `id` int(10) unsigned NOT NULL AUTO_INCREMENT, 
    `email` varchar(255) NOT NULL, 
    `pass` varchar(255) NOT NULL, 
    PRIMARY KEY (`id`), 
    UNIQUE KEY `email` (`email`) 
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=41 ; 
0

Вы можете проверить, если таблица существует перед созданием каждой таблицы. Также при создании таблиц обязательно избегайте строки (имя таблицы) и делайте ее строчной. Вы всегда должны проверять существование таблицы после преобразования строки (имя таблицы) следующим образом.

Вы можете найти в Google, чтобы узнать больше о проверке существования таблицы и т. Д.

Смежные вопросы