我在数据库中有一个自由文本列,需要包含指向数据库中其他对象的链接,如附录中的定义。该数据库将为CMS等系统提供信息。
到目前为止,我只能想到两种在自由文本字段中表示链接的方法:
[link](/entries/999)
我错过了任何更简单的解决方案吗?
此外,有没有办法在没有硬编码URL的情况下表示条目999的链接(例如)?我想自动生成URL,并使数据库的内容能够适应URL的结构变化。
也许相似:How to insert in a database elements with links to other elements?
答案 0 :(得分:0)
我认为要解决这样的问题,应该考虑几个要点:
数据库查询的效率有多重要(这取决于数据库的大小,查询的频率,服务器上的负载等)
对数据进行了哪些更新:是否经常修改文本(页面)?这些更新会修改链接吗?
另一个小问题是:在编程复杂性,性能等方面,您更喜欢如何平衡数据库服务器和应用程序之间的工作。
如果我已正确理解您的问题(我不确定),总是需要将“链接”从应用程序级别转换为数据库级别(否则您不应该遇到特殊问题)。如果这是真的,那么我认为你有以下选择:
使用“数据库语义”维护链接:通过一对值(记录的主键,引用的字段的名称(或数字))将它们链接到字段。然后,您有两个子选项:在文本中维护这些链接,或在包含链接的两个端点的(子)表中提取它们(起始点应该类似于[记录的键,名称]字段,文本中有链接的位置:结束点可以是[记录键,字段名称]。
为链接留下“文本语义”,将它们保留在文本中,并发明某种类似URL的符号,可以很容易地转换为数据库链接,或者可以用来执行在数据库中进行有效搜索。
要评估选择哪个选项,应考虑以上关于效率和更新类型的要点。