Хранение таблиц в записи в базе данных - PullRequest
0 голосов
/ 01 января 2012

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

Скажем, у меня несколько пользователей, каждому пользователю будет показана таблица с каждой неделей / месяцем и расходами, налогами и т. Д. Для них.Как бы я сохранил это в базе данных?Смогу ли я встроить какую-то таблицу в запись, или мне придется использовать отношение «многие ко многим»?

Если кто-нибудь знает хорошее решение, я хотел бы услышать его!

Ответы [ 3 ]

3 голосов
/ 01 января 2012

Из того небольшого количества, которое вы описали, ваша таблица расходов будет иметь отношение много к одному к вашей таблице Person.Каждая строка таблицы расходов может содержать поле «Дата», а также другую информацию о расходах.Единственная причина, по которой вам понадобятся отношения «многие ко многим», заключается в том, что многие люди связаны с одним расходом.Вы, вероятно, хотите прочитать хорошую книгу по моделированию данных.

2 голосов
/ 01 января 2012

Вы бы не встраивали таблицу.Вы путаете между тем, как данные хранятся и как они отображаются.

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

userid, expense_type, expense_description, amount, date_of_expenditure

В этой таблице будут храниться расходы для всех пользователей.

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

2 голосов
/ 01 января 2012

У меня будет пользовательская таблица (id, user_name, password, email ...) и финансовая таблица (id, user_id, дата, транзакция, сумма, подробности ...), за которую будет отвечать единственная финансовая таблица и доход и расходы просто на +/- сумму. Это отношение один ко многим (один пользователь имеет много финансовых записей), тогда вы бы запросили примерно как

SELECT * FROM tblFinance WHERE user_id = foo AND date BETWEEN NOW()-7 AND NOW()

Вы, конечно, можете собирать и т. Д. В своих запросах, надеюсь, это поможет

...