所以我想显示一个用户的国家或国家下拉菜单。在数据库中存储与数值相关的标签或文本:一个好的设计?
比方说,我有一个用户表:
CREATE TABLE users
(
"id" serial, --PK
"name" character varying,
...
"country" integer --FK
);
国家是rerefences“items_country”表
CREATE TABLE items_countries
(
"id" integer, --PK
"text_en" character varying,
"continent" integer --FK to table "items_continent"
);
我总是设计我的数据库的PK“ID”列的外键这样:我的一些应用程序需要接近100种“物品”。
对于具有非常大的一组值的项目,我会创建自己的数据库表(“items_countries”)并将其他项分组在一个巨大的“项目”表中。
这种方法让我的客户感到满意,他们需要通过数据库基于Web的管理来更改标签或在其工作特定项目中添加值。但考虑到大多数这些项目永远不会改变(国家,性别......),是否值得将它们存储在数据库中?
静态数组方法呢?优点:减少数据库表的数量,缺点:没有外键,没有删除级联/验证。
这不是性能问题,因为这两种方法都可能导致缓存,而是数据库/应用程序设计问题。
这是什么方法?