多版面论坛数据库表结构优化设计的讨论_PHP教程
近一直在脑子里构思一个全新的论坛。想与大家讨论一下“多版面论坛数据库表结构的优化设计”问题。
问题的提出:
作为一个综合性的论坛,必然会遇到论坛分类的问题。常见的单层次多版面的结构太简单了点,在分类的问题上力不从心,无法实现比较复杂的分类。而像phorum那样的多层次多版面的结构固然能够实现任意复杂的分类(可以实现无限层次的目录分类结构),但是存在的难题就是导航不直观也不方便。所以我觉得,目前网上常见的双层多版面的结构是比较合理的,基本上满足了综合性论坛分类的要求,又能比较方便地实现直观、方便的论坛导航界面,例子有www.chinaasp.com目前的论坛。这种结构有两层目录,上面一层是大类,下面一层是分类,即具体的论坛版面。如何利用数据库的表来比较高效地实现这种结构呢?
方案一:
不管论坛将来有多少个版面,都把所有的帖子存放到一个表中,这个表中记录一个帖子的所有信息和该帖子所属的小类ID号码,假设这个表称为T_articles,用表T_columns1纪录大类信息(大类名和该大类的ID号码),用表T_columns2纪录小类信息(小类名、小类ID号码和该小类所属的大类ID号码)
方案二:
给每一个小类新建一个表,把属于该类的帖子都存放到这个表中,这个表中仅纪录一个帖子的自身信息(主题、正文等),此类表都用T_articles1、T_articles2等表示。用表T_columns1纪录大类信息(大类名和该大类的ID号码),用表T_columns2纪录小类信息(小类名、小类ID号码和改小类所属的大类ID号码)
要求:
1、要求无论大类小类都便于将来的扩充;
2、要求设计出来的表结构能提高数据库检索效率;
比较:
方案一与方案二哪一种好一些?
大家不妨来讨论一下?
转载“江南论坛”中一位朋友的回复
cach 于 2001-1-18 23:51:59 加贴在 编程大本营
方案一比较好扩充版面,但是不足的是随着贴子的增多,数据量会越来越大,
做一次查询会比较费时间,而且万一数据表出了问题就麻烦了。
不过好处是编程要容易的多。现在很多论坛都是用这个方案的!
而方案二相比来说会速度快些,不过编程时可能要多费一些时间!
我觉得方案二中还应该加一些内容,就是T_columns2中加上一个字段,用来
放新建的小类的表名(因为方案二是一个讨论区建一个表的,这些表因该都是
动态添加的,所以有必要加一个字段存放表名,到时可以通过这个字段做参数
来生成相应的讨论区),优点是速度快,一个讨论区的表出了问题并不影响
其它的讨论区,所以我还是觉得方案二更好些!
以上是个人观点!
版权声明: 本帖版权归提交者cach所有,其它网站转载或转贴须注明出处,传统媒体转载
须事先与原作者和江西热线联系,本帖提交者发言纯属个人意见,与本网站立场无关。

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











7월 12일 뉴스에 따르면, 새로운 Honor Vision Soothing Oasis 눈 보호 화면을 탑재한 Honor Magic V3 시리즈가 오늘 공식 출시되었습니다. 화면 자체는 높은 사양과 품질을 갖추고 있으면서도 AI 능동형 눈 보호 장치 도입을 개척했습니다. 기술. 근시를 완화하는 전통적인 방법은 근시 안경의 도수가 고르게 분포되어 있어 중심 시력 영역은 망막에 맺히지만 주변 영역은 망막 뒤에 맺히는 것으로 알려져 있습니다. 망막은 상이 뒤쳐져 있음을 감지하여 눈의 축방향 성장을 촉진시켜 정도를 심화시킵니다. 현재 근시 발생을 완화시키는 주요 방법 중 하나가 '디포커스 렌즈'다. 중심 영역은 정상적인 도수를 갖고, 주변 영역은 광학 설계 파티션을 통해 조절해 주변 영역의 상이 안으로 들어가게 한다. 망막 앞.

7월 29일 뉴스에 따르면 Honor X60i 휴대폰은 오늘부터 1,399위안부터 공식 판매되고 있다. 디자인 측면에서 Honor X60i 휴대폰은 중앙에 구멍이 있고 4면 모두 경계가 거의 없는 매우 좁은 테두리가 있는 직선형 스크린 디자인을 채택하여 시야를 크게 넓혔습니다. Honor X60i 매개변수 디스플레이: 6.7인치 고화질 디스플레이 배터리: 5000mAh 대용량 배터리 프로세서: Dimensity 6080 프로세서(TSMC 6nm, 2x2.4G A76+6×2G A55) 시스템: MagicOS8.0 시스템 기타 기능: 5G 신호 향상 , 스마트 캡슐, 언더스크린 지문, 듀얼 마이크, 소음 감소, 지식 Q&A, 사진 촬영 기능: 후면 듀얼 카메라 시스템: 5천만 화소 메인 카메라, 200만 화소 보조 렌즈, 전면 셀카 렌즈: 800만 화소, 가격: 8GB

5월 13일 뉴스에 따르면 vivoX100s는 오늘 밤 공식적으로 출시되었으며 뛰어난 이미지 외에도 신호 성능도 매우 뛰어납니다. vivo의 공식 소개에 따르면 vivoX100s는 최대 21개의 안테나가 장착된 혁신적인 범용 신호 증폭 시스템을 사용합니다. 이 디자인은 5G, 4G, Wi-Fi, GPS, NFC 등 다양한 신호 요구 사항의 균형을 맞추기 위해 다이렉트 화면을 기반으로 다시 최적화되었습니다. 이로써 vivoX100s는 생체 역사상 가장 강력한 신호 수신 기능을 갖춘 휴대폰이 되었습니다. 새 휴대폰은 또한 안테나가 본체 주위에 분산된 독특한 360° 서라운드 디자인을 사용합니다. 이 디자인은 신호 강도를 향상시킬 뿐만 아니라 다양한 일상 자세를 최적화하여 부적절한 쥐기 방법으로 인해 발생하는 문제를 방지합니다.

Apple의 최신 iOS18, iPadOS18 및 macOS Sequoia 시스템 릴리스에는 사진 애플리케이션에 중요한 기능이 추가되었습니다. 이 기능은 사용자가 다양한 이유로 손실되거나 손상된 사진과 비디오를 쉽게 복구할 수 있도록 설계되었습니다. 새로운 기능에는 사진 앱의 도구 섹션에 '복구됨'이라는 앨범이 도입되었습니다. 이 앨범은 사용자가 기기에 사진 라이브러리에 포함되지 않은 사진이나 비디오를 가지고 있을 때 자동으로 나타납니다. "복구된" 앨범의 출현은 데이터베이스 손상으로 인해 손실된 사진과 비디오, 사진 라이브러리에 올바르게 저장되지 않은 카메라 응용 프로그램 또는 사진 라이브러리를 관리하는 타사 응용 프로그램에 대한 솔루션을 제공합니다. 사용자는 몇 가지 간단한 단계만 거치면 됩니다.

시간 복잡도는 입력 크기를 기준으로 알고리즘의 실행 시간을 측정합니다. C++ 프로그램의 시간 복잡성을 줄이는 팁에는 데이터 저장 및 관리를 최적화하기 위한 적절한 컨테이너(예: 벡터, 목록) 선택이 포함됩니다. Quick Sort와 같은 효율적인 알고리즘을 활용하여 계산 시간을 단축합니다. 여러 작업을 제거하여 이중 계산을 줄입니다. 불필요한 계산을 피하려면 조건부 분기를 사용하세요. 이진 검색과 같은 더 빠른 알고리즘을 사용하여 선형 검색을 최적화합니다.

7월 19일 뉴스에 따르면, 첫 번째 플래그십 폴더블 폴더블폰인 샤오미 MIX Fold 4가 오늘 공식 출시됐으며 최초로 '3차원 특수형 배터리'를 탑재했다. 보도에 따르면 샤오미 MIX Fold4는 배터리 기술에서 획기적인 발전을 이루었으며 접이식 스크린을 위해 특별히 혁신적인 '3차원 특수형 배터리'를 설계했습니다. 기존 병풍장치는 공간 활용 효율이 낮은 기존의 각형 전지를 주로 사용하고 있다. 이 문제를 해결하기 위해 샤오미는 일반적인 와인딩 배터리 셀을 사용하지 않고 새로운 적층 공정을 개발하여 새로운 형태의 배터리를 만들어 공간 활용도를 크게 향상시켰습니다. 배터리 기술 혁신 양극 시트와 음극 시트를 정확하게 교대로 쌓고 리튬 이온의 안전한 매립을 보장하기 위해 Xiaomi는 용접 및 절단 정확도를 향상시키는 새로운 초음파 용접기와 라미네이션 기계를 개발했습니다.

MySQLi를 사용하여 PHP에서 데이터베이스 연결을 설정하는 방법: MySQLi 확장 포함(require_once) 연결 함수 생성(functionconnect_to_db) 연결 함수 호출($conn=connect_to_db()) 쿼리 실행($result=$conn->query()) 닫기 연결( $conn->close())

PHP에서 데이터베이스 연결 오류를 처리하려면 다음 단계를 사용할 수 있습니다. mysqli_connect_errno()를 사용하여 오류 코드를 얻습니다. 오류 메시지를 얻으려면 mysqli_connect_error()를 사용하십시오. 이러한 오류 메시지를 캡처하고 기록하면 데이터베이스 연결 문제를 쉽게 식별하고 해결할 수 있어 애플리케이션이 원활하게 실행될 수 있습니다.
