2011-03-30 5 views
0

나는 이것을하는 방법을 찾으려고 노력하고있다. 또는 모든 파일을 저장하기 위해 실제 디스크를 사용해야하는 경우.어떻게 내 css/js/images/pdf 파일과 함께 내 데이터베이스에 내 테마를 저장할 수 있습니까?

나는 자신의 프레임 워크를 사용하고있는 데이터베이스에 내 사이트에 대한 테마를 저장할 수 있기를 원한다. 원래 테마를 자신의 폴더에 배치하고 테마 폴더에 업로드 할 때 사용했다. 하지만 그 이후로는 다른 사람들이 계정을 만들어서 자신의 테마를 만들어 나중에 사용할 수 있도록 저장하도록 내 사이트를 다시 작성했습니다.

저는 SMARTY 템플릿 엔진을 사용하고 있습니다. 이제는 tpl이라는 폴더가 하나 있는데이 폴더에 몇 개의 템플릿 파일이 있습니다.

markup.tpl site.tpl

및 css.php 및 js.php

나는 데이터베이스에서 CSS/JS에로드 할 희망이.

하지만 내 문제는 CSS 파일에 50 개의 이미지에 대한 참조가있을 수 있다는 것입니다. 어떻게 CSS 파일과 함께 이미지를 저장할 수 있습니까?

관리하기가 더 쉽지 않은 이미지, 일부 해시 된 파일 이름으로 내 서버에 업로드 된 이미지 또는 데이터베이스에 저장된 이미지를 알 수 없었습니다. 이미지가 데이터베이스에 있으면 관리 및 구성이 더 쉬워 집니까? 사용자가 자신의 계정을 삭제하면, 모든 테마 파일을 찾아서 하나씩, 특히 이미지를 삭제해야합니다. 파일이 서버에 있으면 상상해보십시오. 고유 한 ID로 연결되는 행을 삭제하면 훨씬 쉬울 것입니다 ...

어쨌든, 제 서버에 스트레스가 덜한 가장 좋은 방법을 찾으려고합니다. 저장시 간단하게 온라인 편집기를 통해 테마 파일을 수정하십시오.

답변

1

MySQL BLOB 열의 크기에 제한이 있으므로 파일을 여러 행으로 나누어야합니다. 필자는 일반적으로 파일 시스템이 파일 작업을 처리하도록 작성된 것처럼 파일에 가장 적합한 장소라고 생각합니다.

데이터베이스는 검색하거나 조작해야하는 텍스트가있는 곳에서 유효합니다. 그들은 바이너리 파일만큼 효과적이지 않습니다.

+0

흠, 결국에는 서버의 이미지와 문서를 가지고 있지만 데이터베이스의 makrup을 가지고있는 것이 좋습니다. longblob는 16MB의 데이터를 저장할 수 있습니까? 또는 그와 비슷한 것 – Eli

+0

한계는 LONGBLOB에 대해 특별히 ['L + 4 bytes, L <2^32'> (http://dev.mysql.com/doc/refman/5.0/en/storage- requirements.html) 또는 4294967296 바이트 (32Gb). 웹 개발의 몇몇 파일은이 제한을 위반하지 않으며 훨씬 적은 파일입니다. 파일 시스템이 더 효과적이라면, 그것은 파일 시스템과 db의 많은 공통점을 공유하는 것처럼 DB의 구현에 달려 있습니다. –

+0

흠, 그걸로 마음에 ... 그럼 데이터베이스에있는 모든 파일을 저장하면 더 효과적인 방법으로 가져 오기, updaing, 삭제에 관해서? – Eli

관련 문제