2014-01-14 2 views
2

Я разрабатываю приложение с использованием PHP/SQL Server, которое должно хранить информацию о выпускниках из множества различных академических программ, а также информацию о том, сколько из них было занято после окончания ... Это будет затем запрашиваются пользователями, которые захотят сравнить одну программу с другой, чтобы они могли создавать пользовательские таблицы, показывающие результаты для студентов. Таблицы будут что-то вроде этого:Хранение данных для таблиц HTML в базе данных

Program   Salary after 1 Year  Salary after 2 Years   Etc... 
Engineering  Lots      Even more! 
Philosophy   Nothing     Are you kidding me? 

Итак, вот вопрос: я должен хранить отдельные значения для этих точек данных в базе данных, или я должен просто хранить сырую HTML для строки таблицы?

Другими словами, я хранить это:

ProgramID Salary1 Salary2    Etc... 
1   Lots  Even More! 
2   Nothing Are you kidding me? 

Или я храню это:

ProgramID RowHTML 
1   <td>Lots</td><td>Even More!</td>... 
2   <td>Nothing</td><td>Are you kidding me?</td> 

Я вижу аргументы в пользу обоих подходов ... моя кишка говорит мне, что хранение raw HTML будет быстрее - он устранит GOBS обработки PHP. Но я открыт для других интерпретаций.

ответ

0

Я бы сохранил необработанные данные. это даст возможность изменить формат/макет страницы, когда ваш босс говорит «Сделайте его более новым» или что-то еще. Если вы храните данные таблицы, вы застряли.

0

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

0

Итак, вот вопрос: я должен хранить отдельные значения для этих точек данных в базе данных, или я должен просто хранить необработанный HTML для строки таблицы?

Прямой ответ:

Хранить data points, HTML, вы всегда можете восстановить позже, это будет также сделать ваши запросы путь более быстро.

0

Короткий ответ: Сохраните отдельные данные, а не HTML.

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

3

Простые правила для любых СУБД, сохраняйте данные только в таблицах и ничего больше.

Это обеспечит быстрый, простой и безопасный поиск, обновление и вставку данных. Храните данные в таблицах и создавайте таблицы HTML во время выполнения.Я продемонстрировал здесь, как легко и просто создавать HTML-таблицы, когда у вас есть только данные, хранящиеся в вашей таблице, и ничего больше.

Пример

Я использовал свой данный пример

DECLARE @t TABLE (ProgramID INT,Salary1 VARCHAR(50),Salary2 VARCHAR(50)) 
INSERT INTO @t VALUES 
(1,'Lots','Even More!'), 
(2,'Nothing','Are you kidding me?') 

DECLARE @tableHTML NVARCHAR(MAX) ; 

SET @tableHTML = 
    N'<H1>Students Salaries</H1>' + 
    N'<table border="1">' + 
    N'<tr><th>ProgramID </th><th>Salary1</th><th>Salary2</th>' + 
    CAST ((SELECT td = ProgramID,  
        '', 
        td = Salary1, 
        '', 
        td = Salary2 
       FROM @t  

       FOR XML PATH('tr'), TYPE 
    ) AS NVARCHAR(MAX)) + 
    N'</table>' ; 
SELECT @tableHTML; 

HTML Таблица Созданное выше запроса

<H1>Students Salaries</H1><table border="1"><tr><th>ProgramID </th><th>Salary1</th><th>Salary2</th><tr><td>1</td><td>Lots</td><td>Even More!</td></tr><tr><td>2</td><td>Nothing</td><td>Are you kidding me?</td></tr></table>

+1

мило. Следующий вопрос будет следующим: «Как мне изменить значения?» - которые должны были бы абстрагировать объекты строк. Но для быстрого и грязного отображения данных это функционально. – SQLMason

+0

@DanAndrews и мой ответ будет, насколько я получу за это заплатить за это :) –

+0

Спасибо ... это был мой последний вопрос ... лучше использовать обработку массива PHP для генерации таблиц из необработанных данных или для создания тщательно обработанного SQL-запроса для его обработки? У меня есть кодирование, так что это не вопрос необходимости в коде, это просто вопрос не знать лучших практик ... (В качестве примечания, мои данные будут довольно статичными ... любое обновление будет заменой всей таблицы, о которой идет речь.) –

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