MadMyche
Давай посмотрим... вы отметили этот вопрос с помощью MySql.
MySql-это тип реляционной системы управления базами данных (RDMS).
Это означает, что вещи должны быть связаны
I am making an app by way of practice to keep track of pet spiders and some details.
I have had a think and I think the best way would be to create a DB on-the-fly according to the user's username.
Итак, у нас есть пара вещей, которые связаны между собой. У нас есть пользователи, и у нас есть их домашние пауки.
На данный момент я бы сделал две отдельные таблицы в базе данных: одну для пользователей, а другую для их пауков.
Таблица пользователей будет содержать основную информацию о них; определенно идентификатор (я назову его UserID) и, возможно, их имя и т. д.
CREATE TABLE User (
UserID INT,
UserName NVARCHAR(32)
)
Таблица Spider будет начинаться как очень похожая; однако там будет дополнительный столбец для того, кто был владельцем
CREATE TABLE Spider (
SpiderID INT,
UserID INT,
SpiderName NVARCHAR(32)
)
И в этот момент я мог бы запросить эту единственную базу данных и узнать обо всех пользователях, у которых есть пауки
SELECT u.UserName, s.SpiderName
FROM User u
INNER JOIN Spider s ON u.UserID = s.UserID -- this is the relationship comes in
Время идет... Вы просто можете обнаружить, что это не идеально.
Что, если брат и сестра владеют одним и тем же пауком? Этот
1:n отношения должны были бы стать
многие ко многим, чтобы несколько пользователей могли владеть одним и тем же пауком. Время для а
мост таблица для их соединения
CREATE TABLE UserToSpider (
ndx INT,
UserID INT,
SpiderID INT
)
И естественно запрос чтобы узнать все это нужно было бы изменить
SELECT u.UserName, s.SpiderName
FROM User u
INNER JOIN UserToSpider x ON u.UserID = x.UserID -- relating User to UserToSpider
INNER JOIN Spider s ON x.UserID = s.UserID -- relating UserToSpider to Spider
Что касается столбца UserID в исходной таблице Spider... Я хотел оставить его в отличие от его удаления. Вы могли бы перепрофилировать его в качестве
основной владелец или что-то в этом роде.
Я остановлюсь, поскольку зашел уже достаточно далеко. Но я уже вижу грядущие перемены; может быть, кто-то и поймает рыбу!
Обратите внимание, что я не работаю с MySql, поэтому синтаксис может быть немного неправильным