在一个网站中,我有四个部分:活动,地点,新闻和格式
所有这些都有4种图像:
您将如何设计数据库,类和文件系统?
在我的想法之下:
FILESYSTEM
img/
locations/
25(location id from db)/
big/
small/
gallery/
descripton/
events/
news/
formats/
数据库和课程
大图像和小图像将作为位置,事件,新闻和格式表中的字段
1)所有画廊图片的一张大表:
gallery:
id
type_id (location, events, news and formats)
filename
然后是四个表:
locations_gallery:
location_id
gallery_id
等...
通过这种方法,我创建了一个IGalleryDAO,如:
interface IGalleryDAO
{
GetImages (typeId, id);
SaveImages (images[], typeId, id);
}
然后四个类的位置,事件,新闻和格式会将路径附加到文件名并使用它们
2)四个表,每个位置一个,事件,新闻和格式如:
locations_gallery:
location_id
filename
etc...
通过这种方法,我创造了这个:
interface IGalleryDAO
{
GetImages (typeId, id);
SaveImages (images[], typeId, id);
}
abstract class GalleryDAO implements IGalleryDAO
{
abstract getFilePath (); // to ensure the filepath variable
abstract GetImages (id);
abstract SaveImages (id, images[]);
}
class LocationGalleryDAO extends GalleryDAO
{
function GetFilePath (){};
function GetImages (id){};
function SaveImages (id, images[]){};
}
同样适用于描述图像
你有什么建议?
提前感谢您的建议
答案 0 :(得分:0)
我会在数据库中包含图像路径(而不是图像)。是的,很多数据库都有图像选项,但有很好的理由不使用这些功能。其中之一是有非常好的框架可用于组织图像,如果您决定将来使用其中任何一种,您的双手将被束缚在背后。
为此目的,您可以在数据库中拥有的表的示例是:
表:images
__________________________
| id | path | type |
|------+----------+--------|
| 1 | /img/s/1 | s |
|------+----------+--------|
| 2 | /img/b/2 | b |
|------+----------+--------|
| 3 | /img/g/3 | g |
|------+----------+--------|
| 4 | /img/s/4 | s |
|------+----------+--------|
| 5 | /img/d/5 | d |
路径将被提取,然后在您的html中使用:<img src='{$path}'>
。当您想要查询某些图像时,类型列很有用,如果您将来特别需要其他类型的查询,则可以相应地添加列。
id将是您的PRIMARY KEY
,但有些人更喜欢使用日期作为主键,但这完全取决于您。如果您要使用日期,则可以在特定图像存储在数据库中时进行记录。